2010-02-27 6 views
8

J'essaie de créer un processeur de contexte personnalisé qui affichera une liste d'éléments de menu pour un utilisateur connecté. Je l'ai fait ce qui suit:Impossible d'appeler le processeur de contexte personnalisé


Dans mon settings.py je

 
TEMPLATE_CONTEXT_PROCESSOR = (
    'django.contrib.auth.context_processors.auth', 
    'mysite.accounts.context_processors.user_menu', 
) 

Dans les comptes sous-module je context_processors.py avec ce qui suit, pour l'instant:

 
def user_menu(request): 
    return {'user_menu':'Hello World'} 

Sur ma page de modèle j'ai les éléments suivants:

 
{% if user.is_authenticated %} 
Menu 
{{user_menu}} 
{% endif %} 

La vue invocateur est la suivante:

 
def profile(request): 
    return render_to_response('accounts/profile.html',context_instance=RequestContext(request)) 

Cependant, je ne peux pas obtenir le {{user_menu}} de rendre quoi que ce soit sur la page, je sais que l'utilisateur est authentifié comme d'autres sections du modèle avec des contrôles similaires rendent correctement. Est-ce que j'ai râté quelque chose. S'il vous plaît aider Merci

Edit: Merci Ben, Daniel, je suis fixé le (S) TEMPLATE_CONTEXT_PROCESSOR, mais Django a maintenant du mal à résoudre le module et je reçois le message suivant

 
Error importing request processor module django.contrib.auth.context_processors: "No module named context_processors" 

mISE à JOUR: Je l'ai fixé en changeant le chemin de django.core.context_processors.auth semble que les modules ont été déplacés autour

+0

Il devrait être 'TEMPLATE_CONTEXT_PROCESSORS' –

Répondre

5

le nom du paramètre doit être TEMPLATE_CONTEXT_PROCESSORS, avec un S.

+0

Ah, merci ...: p .. Je semble avoir progressé un peu plus maintenant, je reçois l'erreur suivante .. Désolé, je suis un débutant à la fois python et django Erreur lors de l'importation demande module processeur django.contrib.auth.context_processors: "Aucun module nommé context_processors" – VDev

+0

Dit que vous l'avez corrigé en vous assurant que chaque dossier que vous créez avec du code python contient un __init__.py. Cela dit python, yo, c'est un module. – TheLizardKing

Questions connexes