例如,我可以在上下文中使用模板文件名将url '^/accounts/password/reset/$'
指向django.contrib.auth.views.password_reset
,但我认为需要发送更多上下文详细信息.
我需要确切地知道要 for each 密码重置和更改视图添加什么上下文.
例如,我可以在上下文中使用模板文件名将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模式元组的第三个成员包括在内,可以向视图提供关键字参数.