IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Django Python Discussion :

Mise en cache et variables dans le view.py


Sujet :

Django Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Par défaut Mise en cache et variables dans le view.py
    Bonjour,

    Étant débutant dans Django, veuillez m'excuser si cela peut paraitre bête...

    Je souhaite mettre des variables dans une fonction du view.py en cache (ou du moins les garder en mémoire par la suite):

    Le site Django est un site de gestion, pour l'instant il est en développement sur le serveur de dev de Django le tout relié à une base de données Postgresql.

    Un exemple d'url : 127.0.0.1:8000/gestion/42/resume

    - 42 : est l'id
    - /resume montre une page html qui résume l'id 42

    Dans mon template "base.html", j'ai créé un block Link. Link à pour but d'afficher des liens si ils existent; montrer les informations disponibles pour la gestion de l'id : 42 a par exemple "tata", "toto" et "titi" de disponible alors que l'id 44 n'a que "toto".

    l'id 42 aura donc un lien 127.0.0.1:8000/gestion/42/resume/tata présentant des informations alors que l'id 44 n'aura pas ce lien visible dans son résumé.

    Voila pour l'explication du contexte, si vous avez des questions n'hésitez pas !

    En ce qui concerne le code :

    dans ma fonction resume de view.py :

    def resume (request, id):
    id = int(id)
    ...
    ...
    ...
    countToto = toto.objects.filter(toto_id = id).count()
    countTata = tata.objects.filter(tata_id = id).count()
    etc...

    Maintenant dans mon fichier base.html, dans mon block Link, si countToto (et les autres count) sont différents de 0 alors j'affiche les liens.

    Pour l'instant tout ça marche !

    Le problème vient quand je vais dans l'url 127.0.0.1:8000/gestion/42/resume/toto, les liens toto, tata (etc...) ne sont plus présent (normal, non définie dans la fonction toto).

    toto.html hérite de base.html. Il hérite donc du block Link qui affiche les liens disponibles. Mais comme je suis un peu féniant (et que je trouve cela redondant), je ne veux pas remettre les countToto (etc...) dans ma fonction toto présent dans view.py.

    Vous me suivez toujours ?

    J'ai alors regardé le chapitre 13 du DjangoBook (ma bible actuelle) mais sans résultats après plusieurs test différents...

    Je souhaiterais donc garder les valeurs "count" en mémoire pour ne pas devoir les appeler à chaque page.

    Si vous avez des idées, des remarques ou besoin d'informations n'hésitez pas, et merci d'avance.

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2010
    Messages
    49
    Détails du profil
    Informations personnelles :
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Mars 2010
    Messages : 49
    Par défaut
    Tu peux utiliser le système de cache de django, et plus particulièrement le template fragment caching pour un block spécifique.

    Autrement (mais pour des requêtes aussi simples ça ne se justifie pas), tu peux créer une table qui stocke le résultats des requêtes et qui n'est mise à jour que lorsque les données des modèles sont modifiées (via les signaux par exemple)

  3. #3
    Membre habitué
    Inscrit en
    Avril 2010
    Messages
    9
    Détails du profil
    Informations forums :
    Inscription : Avril 2010
    Messages : 9
    Par défaut
    Merci Providenz, tout compte fait, je n'ai plus besoin de mettre en cache des donneés... Mais j'aurais au moins appris des choses

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. MVC - Accéder à une variable dans la VIEW (handler) ?
    Par Bruno13 dans le forum Ext JS / Sencha
    Réponses: 3
    Dernier message: 23/07/2014, 13h57
  2. Réponses: 2
    Dernier message: 22/02/2013, 09h46
  3. Déclaration de variable dans le VIEW en sencha
    Par jockhip12 dans le forum Ext JS / Sencha
    Réponses: 2
    Dernier message: 18/01/2013, 13h35
  4. Incrémentation d'une variable dans une view
    Par austriker dans le forum Requêtes
    Réponses: 1
    Dernier message: 18/03/2009, 16h53
  5. Variable dans une view ou autre idée
    Par thegreatbato dans le forum Oracle
    Réponses: 10
    Dernier message: 14/12/2007, 09h22

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo