我正在尝试让Zinnia在django网站上运行,这样我就可以对其进行评估。我已经设法安装了它的所有依赖项,一切都很好,我已经使用管理工具创建了一些帖子,但现在访问它们时出现错误!
错误:
KeyError at /weblog/2012/10/12/test-post/
'request'
Request Method: GET
Request URL: http://127.0.0.1:8000/weblog/2012/10/12/test-post/
Django Version: 1.4.1
Exception Type: KeyError
Exception Value: 'request'
Exception Location: /usr/local/lib/python2.7/site-packages/django/template/context.py in __getitem__, line 54
Python Executable: /usr/local/bin/python
Python Version: 2.7.3
Python Path:
['/home/ubuntudev/webtest/twsite',
'/usr/local/lib/python2.7/site-packages/setuptools-0.6c12dev_r88846-py2.7.egg',
'/usr/local/lib/python2.7/site-packages/pip-1.2.1-py2.7.egg',
'/usr/local/lib/python27.zip',
'/usr/local/lib/python2.7',
'/usr/local/lib/python2.7/plat-linux2',
'/usr/local/lib/python2.7/lib-tk',
'/usr/local/lib/python2.7/lib-old',
'/usr/local/lib/python2.7/lib-dynload',
'/usr/local/lib/python2.7/site-packages']作为参考,这里是我的settings.py和我的urls.py。后者无可否认是一个巨大的混乱,因为我一直在浪费我能想到的一切。
我刚刚接触了Django和Zinnia,所以请在你的回答中描述一下!提前谢谢。
发布于 2012-10-31 02:43:43
Django有一个用于将变量传递到模板的系统,称为 (here's a good blog post about them)。如果您希望在每个模板中都包含某些信息,则这些方法非常有用。例如,如果您不想将导航菜单的所有链接添加到每个视图/模板,则可以编写一个模板处理器,将这些链接以列表的形式提供给每个模板。
有一些上下文处理器对大多数应用程序相当关键。其中之一是django.core.context_processors.request,它将当前请求对象传递给每个模板。这允许您访问模板中的{{ request }}变量,该变量将为您提供有关用户发送的头等信息(as well as much more)。
总之,长话短说,您已经在您的设置中禁用了上述django.core.context_processors.request:
#TEMPLATE_CONTEXT_PROCESSORS = (
# "django.contrib.auth.context_processors.auth",
# 'django.core.context_processors.i18n',
# 'django.core.context_processors.request',
# 'django.core.context_processors.media',
# 'django.core.context_processors.static',
# 'zinnia.context_processors.version',
#)所以把所有这些都去掉,你就没问题了
https://stackoverflow.com/questions/13145162
复制相似问题