2

我有一个用于更改密码的 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 处理程序中执行此操作的快捷方式。

你能告诉我如何修改我当前的 URL 处理程序以将当前request对象传递extra_contextauth_views.password_change视图吗?

4

1 回答 1

2

通常您在 urlconf 中执行此操作 - 但您不能传入request.userextra_context,因为 urls.py 无法访问请求。

但是password_change,像所有内置视图一样,用于RequestContext呈现模板 - 这意味着user那里自动存在一个对象(由 传递django.contrib.auth.context_processors.auth,除非您已将其从CONTEXT_PROCESSORSsettings.py 中的列表中删除)。

于 2011-10-28T09:58:11.960 回答