一尘不染

如何使用自己的模板使用内置的密码重置/更改视图

django

例如,我可以点url '^/accounts/password/reset/$'django.contrib.auth.views.password_reset我的背景下,模板文件名,但我认为有必要派遣更多的上下文信息。

我需要确切地知道为每个密码重置和更改视图添加什么上下文。


阅读 325

收藏
2020-03-30

共1个答案

一尘不染

你会注意到,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'}),
     ...
)

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

否则,你无需提供任何上下文,因为password_reset视图会自行处理。如果要查看可用的上下文,则可以触发TemplateSyntax错误,并在堆栈跟踪中查找具有名为的局部变量的框架context。如果你想修改上下文,那么我上面所说的关于上下文处理器的方法可能就是解决方法。

总结:使用自己的模板需要做什么?template_name在调用视图时,为视图提供关键字参数。你可以通过将字典作为URL模式元组的第三个成员来为视图提供关键字参数。

2020-03-30