2009-10-06 13 views
4

Je dois avoir manqué quelque chose dans la configuration d'un contexte de modèle personnalisé car il ne reçoit jamais d'appel.Pourquoi mon processeur de contexte de modèle django n'est pas appelé

Dans les paramètres:

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.core.context_processors.auth", 
    "django.core.context_processors.debug", 
    "django.core.context_processors.i18n", 
    "django.core.context_processors.media", 
    "django_authopenid.context_processors.authopenid", 
    "web.context_processors.my_hat", 
) 

dans web/context_processors.py

from libs.utils import get_hat, get_project, my_hats 

print 'heloooo' 

def my_hat(request): 
    """Insert some additional information into the template context 
    """ 
   
    import pdb 
    pdb.set_trace() 

    print 'hiiiiiiii' 

    return {'hat': get_hat(request), 
     'project': get_project(request), 
     } 

rien est processus de sortie et django voir et affiche modèle sans jamais frapper ce. Qu'ai-je manqué?

Merci Insin, les bits que j'avais manqué:

Dans le view.py

return render_to_response(template, { 
     'tasks': tasks, 
    }, 
    context_instance=RequestContext(request)) 

Dans le modèle:

My current hat is {{hat}} 

Répondre

14

Avez-vous pensé à utiliser lors du rendu RequestContext le gabarit?

À partir de Django 1.3, il y a une nouvelle fonction de raccourci, render, qui utilise RequestContext par défaut::

return render(request, template, { 
    'tasks': tasks, 
}) 
+0

Non que de mes nombreux googler les exemples ne montrent pas! http://stackoverflow.com/questions/557460/django-having-middleware-communicate-with-views-templates http://stackoverflow.com/questions/1025025/django-context-processor-trouble http://lethain.com/entry/2007/jun/14/a-django-middleware-for-google-analytics-repost/ ... – PhoebeB

Questions connexes