例如,我可以在上下文中使用模板文件名将url '^/accounts/password/reset/$'指向django.contrib.auth.views.password_reset,但我认为需要发送更多上下文详细信息.

我需要确切地知道要 for each 密码重置和更改视图添加什么上下文.

推荐答案

如果你看一下django.contrib.auth.views.password_reset的来源,你会发现它使用RequestContext.结果是,您可以使用上下文处理器来修改上下文,从而可以插入所需的信息.

b级榜单的得分很高,为introduction to context processors分.

编辑(我似乎搞不清楚实际问题是什么):

您会注意到,password_reset接受一个名为template_name的命名参数:

def password_reset(request, is_admin_site=False, 
            template_name='registration/password_reset_form.html',
            email_template_name='registration/password_reset_email.html',
            password_reset_form=PasswordResetForm, 
            token_generator=default_token_generator,
            post_reset_redirect=None):

有关更多信息,请查看password_reset.

...因此,对于urls.py,如下所示:

from django.conf.urls.defaults import *
from django.contrib.auth.views import password_reset

urlpatterns = patterns('',
     (r'^/accounts/password/reset/$', password_reset, {'template_name': 'my_templates/password_reset.html'}),
     ...
)

对于与关键字参数template_name = 'my_templates/password_reset.html'匹配'/accounts/password/reset'的URL,将调用django.contrib.auth.views.password_reset.

否则,您不需要提供任何上下文,因为password_reset视图会自行处理.如果希望查看可用的上下文,可以触发TemplateSyntax错误并查看堆栈跟踪,找到具有名为context的局部变量的帧.如果您想修改上下文,那么我在上面所说的上下文处理器可能是可行的.

总而言之:要使用您自己的模板,您需要做些什么?在调用视图时为其提供template_name个关键字参数.通过将字典作为URL模式元组的第三个成员包括在内,可以向视图提供关键字参数.

Django相关问答推荐

无法在 docker 启动Django项目

无法将关键字average_rating解析为字段

注册新用户时,对象没有属性';is_active';错误:';NoneType';对象没有属性

data._mutable= 在 Django REST 框架中为真

在 Django Admin change_list 视图中更改 list_editable 字段时保存 Django 模型

Django Query 在基于通用类的 UpdateView 中重复了 2 次

如何在 django tests.py 中创建管理员用户

在 django/python 上访问请求标头

Python / Django 中的 Unicode 与 UTF-8 混淆?

Django聚合:仅求和返回值?

使用基于日期/时间的对象进行 Django 单元测试

无效的命令 WSGIDaemonProcess 在 CentOS 6.7 上部署 Django 应用程序

在 django 模板中遇到 user.is_authenticated 问题

如何在Django中获取一个组的所有用户?

Django:使用render或render_to_response时添加响应头

Django JavaScript 文件

django post_save 更新信号

Django 将多个模型传递给一个模板

Django:如何从模板中识别调用视图?

Django: Force强制 Select 相关?