如果你看一下来源django.contrib.auth.views.password_reset http://code.djangoproject.com/browser/django/trunk/django/contrib/auth/views.py你会看到它使用RequestContext http://code.djangoproject.com/browser/django/trunk/django/template/__init__.py。结果是,您可以使用上下文处理器来修改上下文,这可能允许您注入所需的信息。
B名单有一个很好的上下文处理器简介 http://www.b-list.org/weblog/2006/jun/14/django-tips-template-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):
Check 重设密码 https://docs.djangoproject.com/en/1.9/topics/auth/default/#django.contrib.auth.views.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'}),
...
)
django.contrib.auth.views.password_reset
将调用 URL 匹配'/accounts/password/reset'
与关键字参数template_name = 'my_templates/password_reset.html'
.
否则,您不需要提供任何上下文password_reset
视图会自行处理。如果您想查看可用的上下文,您可以触发TemplateSyntax
错误并查看堆栈跟踪,找到具有名为的局部变量的帧context
。如果您想修改上下文,那么我上面所说的有关上下文处理器的内容可能就是正确的选择。
总之:使用自己的模板需要做什么?提供一个template_name
调用视图时传递给视图的关键字参数。您可以通过包含字典作为 URL 模式元组的第三个成员来向视图提供关键字参数。