2011-05-23 50 views
15

我试图设置模板上下文处理器,如this article mentions,以便我可以向每个模板提供信息。Django - 模板上下文处理器 - 打破我的应用程序

我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. 

我做错了什么?这里发生了什么?我试着做错误说的话,然后它会渲染一个页面,其中包含我的所有样式表和图像。

回答

21

Django具有一组默认的TEMPLATE_CONTEXT_PROCESSORS,在添加自己的时候需要手动添加。 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", 
) 
+0

嗯,我可以再补充矿山现有的默认列表?例如,TEMPLATE_CONTEXT_PROCESSORS = secret_default_location.TEMPLATE_CONTEXT_PROCESSORS +('Store.views.items_in_cart',) – Greg 2011-05-23 15:33:25

+0

您应该可以使用TEMPLATE_CONTEXT_PROCESSORS + =('Store.views.items_in_cart',)追加到默认值 – PiGGeH 2011-05-23 15:46:24

+0

它说它没有定义。 – Greg 2011-05-23 16:41:00

相关问题