如何在URL处理程序中将extra_context传递给auth_views.password_change

时间:2011-10-28 09:50:29

标签: python django django-registration

我有一个用于更改密码的URL处理程序,例如:

                       url(r'^password/change/$',
                           auth_views.password_change,
                           {'template_name' : 'account/password/password_change_form.html'},
                           name='auth_password_change'),

一切都很好,我的模板已加载,密码更改按预期工作。但是,我的模板需要访问request.user。默认情况下,request对象不会从内置auth_views.password_change视图传递给模板。

我知道auth_views.password_change视图可以在额外的上下文中传递,它将传递给模板。我只是不知道如何在我的URL处理程序中执行此操作。

我知道我可以写另一个包裹auth_views.password_change的视图,但我很好奇是否有一种快捷方式可以在URL处理程序中执行此操作。

您能告诉我如何修改我当前的网址处理程序,以便将当前request对象作为extra_context传递到auth_views.password_change视图吗?

1 个答案:

答案 0 :(得分:2)

通常你在urlconf中这样做 - 但你不能在extra_context中传递request.user,因为urls.py无法访问请求。

password_change与所有内置视图一样,使用RequestContext呈现模板 - 这意味着自动存在user对象(由{{1}传入除非你已经从settings.py中的django.contrib.auth.context_processors.auth列表中删除了它。