2010-02-27 17 views
8

Estoy intentando crear un procesador de contexto personalizado que muestre una lista de elementos de menú para un usuario conectado. He hecho lo siguiente:No se puede invocar el procesador de contexto personalizado


Dentro de mi settings.py tengo

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

Bajo las cuentas submódulo tengo context_processors.py con lo siguiente, por ahora:

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

En mi página de plantilla tengo lo siguiente:

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

La vista invocación es el siguiente:

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

Sin embargo no estoy en condiciones de obtener el {{user_menu}} para hacer cualquier cosa en la página, sé que el usuario se autentica como otras secciones de la plantilla con controles similares hacen correctamente. Me estoy perdiendo de algo. Por favor ayuda Gracias

Editar: Gracias Ben, Daniel, he fijado el (S) en TEMPLATE_CONTEXT_PROCESSOR, sin embargo Django ahora tiene problemas para resolver el módulo y me sale el siguiente mensaje de

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

ACTUALIZACIÓN: lo arreglé cambiando la ruta de acceso a django.core.context_processors.auth parece que los módulos se han movido alrededor

+0

Debería ser 'TEMPLATE_CONTEXT_PROCESSORS' –

Respuesta

5

el nombre del parámetro debe ser TEMPLATE_CONTEXT_PROCESSORS, con una S.

+0

Ah, gracias ...: p .. Parece que he progresado un poco más ahora recibo el siguiente error ... Lo siento, soy un novato de python y django Error al importar la solicitud módulo procesador django.contrib.auth.context_processors: "Ningún módulo llamado context_processors" – VDev

+0

dice que lo arregló para asegurarse de que cada carpeta que cree con el código python tenga un __init__.py en él. Eso le dice a Python, yo, es un módulo. – TheLizardKing

Cuestiones relacionadas