在我的“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'),
答案 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视图,该视图将在正确的上下文中传递。