我有一个用于更改密码的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
视图吗?
答案 0 :(得分:2)
通常你在urlconf中这样做 - 但你不能在extra_context中传递request.user
,因为urls.py无法访问请求。
但password_change
与所有内置视图一样,使用RequestContext
呈现模板 - 这意味着自动存在user
对象(由{{1}传入除非你已经从settings.py中的django.contrib.auth.context_processors.auth
列表中删除了它。