Django - 模板上下文处理器 - 造成我的应用崩溃

15 投票
1 回答
10359 浏览
提问于 2025-04-16 18:11

我在尝试设置一个模板上下文处理器,就像这篇文章提到的那样,这样我就可以给每个模板提供一些信息。

我在views.py里写了这个函数:

def items_in_cart(request):
    """Used by settings.TEMPLATE_CONTEXT_PROCESSORS to provide an item count
    to every template"""
    cart, lines = get_users_cart_and_lines(request)
    return {'items_in_cart': lines.count()}

然后我在settings.py里加了这一行:

TEMPLATE_CONTEXT_PROCESSORS = ('Store.views.items_in_cart',)

但是现在每当我访问任何页面时,就会出现这个错误:

ImproperlyConfigured at /

Put 'django.contrib.auth.context_processors.auth' in your TEMPLATE_CONTEXT_PROCESSORS setting in order to use the admin application.

我是不是做错了什么?到底发生了什么事?我试着按照错误提示的内容去做,但这样会导致页面上所有的样式表和图片都不见了。

1 个回答

21

Django有一套默认的模板上下文处理器,如果你想添加自己的处理器,需要手动把它们加进去。你可以在这个链接找到相关信息:http://docs.djangoproject.com/en/1.3/ref/settings/#template-context-processors

根据你使用的Django版本,这些处理器可能会有所不同。不过,如果你使用的是Django 1.3,可能会看到如下内容:

TEMPLATE_CONTEXT_PROCESSORS = (
    "django.contrib.auth.context_processors.auth",
    "django.core.context_processors.debug",
    "django.core.context_processors.i18n",
    "django.core.context_processors.media",
    "django.core.context_processors.static",
    "django.contrib.messages.context_processors.messages",
    "Store.views.items_in_cart",
)

撰写回答