django.contrib.auth视图和模板变量

时间:2010-11-13 19:37:18

标签: django django-authentication

在我的“root”模板中,我有类似的东西

{% if special %}
some_special_html
{% endif %}

special模板var由某些视图插入模板中。

问题是我需要password_change视图来设置special模板var。

最好的方法是什么?

目前,直接从urls.py调用password_change视图:

url(r'^change_password/$', 'django.contrib.auth.views.password_change',
    {'template_name': 'profile/password_change.html'},
    name='password_change'),

2 个答案:

答案 0 :(得分:3)

至少从Django 1.3开始,password_change视图确实需要额外的上下文,尽管文档没有提到它。

您可以使用kwargs函数的url参数将额外的关键字参数传递给视图,因此要获取额外的上下文,请执行以下操作:

url(r'^password/change/$',
    auth_views.password_change,
    {'template_name': 'profile/password_change.html'},
    name='password_change',
    kwargs=dict(extra_context={'special': 'special'}),
    ),

答案 1 :(得分:0)

special var的处理移动到context_processor中,或者只使用您自己的视图包装password_change auth视图,该视图将在正确的上下文中传递。