2011-09-22 3 views
2

J'ai un objet appelé Groups qui est utilisé dans chaque page de mon site Web. Cependant, Django ne transmet que des objets Python au format html via render_to_response et je ne peux pas rendre la réponse à chaque fois que quelque chose arrive à l'objet groups.Passer un objet dans chaque page Django

Comment est-ce que je maintiens cet objet (comme en le faisant répondre à l'addition et la suppression) et le produit dans chaque modèle de Django que j'ai sans appeler render_to_response?

Répondre

1

Si vous souhaitez que des données soient ajoutées à plusieurs contextes de gabarits, vous devez chercher à les atteindre via le vôtre template context processor.

1

Vous devez créer un processeur de contexte de modèle pour transmettre un objet à chaque requête. Voici quelques example

5

écrire un template context processor:

#my_context_processors.py 

def include_groups(request): 
    #perform your logic to create your list of groups 
    groups = [] 
    return {'groups':groups} 

puis l'ajouter dans votre fichier de paramètres:

#settings.py 

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.auth", 
    "django.core.context_processors.debug", 
    "django.core.context_processors.i18n", 
    "django.core.context_processors.media", 
    "path.to.my_context_processors.include_groups", 
) 

maintenant une variable que vous groups sera disponible dans tous vos modèles

Questions connexes