8

我正在尝试创建一个自定义上下文处理器,它将为登录用户呈现菜单项列表。我做了以下事情:


在我的 settings.py 中,我有

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

在帐户子模块下context_processors.py,我现在拥有以下内容:

def user_menu(请求):
    返回 {'user_menu':'Hello World'}

在我的模板页面上,我有以下内容:

{% if user.is_authenticated %}
菜单
{{user_menu}}
{% 万一 %}

调用视图如下:

def 配置文件(请求):
    return render_to_response('accounts/profile.html',context_instance=RequestContext(request))

但是我无法{{user_menu}}在页面上呈现任何内容,我知道用户已通过身份验证,因为模板的其他部分具有类似的检查正确呈现。我在这里错过了什么吗。请帮忙谢谢

编辑:谢谢 Ben,Daniel,我已经修复了 (S) in TEMPLATE_CONTEXT_PROCESSOR,但是 Django 现在无法解析模块,我收到以下消息

导入请求处理器模块 django.contrib.auth.context_processors 时出错:“没有名为 context_processors 的模块”

更新:django.core.context_processors.auth我通过将路径更改为似乎模块已被移动来修复它

4

1 回答 1

5

设置名称应为TEMPLATE_CONTEXT_PROCESSORS, 带有 S。

于 2010-02-27T21:00:36.173 回答