您遇到语法错误
url:
url(r'^reset-password/$',
PasswordResetView.as_view(template_name='accounts/reset_password.html', 'post_reset_redirect': 'accounts:password_reset_done'), name='reset_password'),
出什么问题了?
谢谢
答案 0 :(得分:2)
问题是您将字典语法与参数语法混合在一起
url(
r'^reset-password/$',
PasswordResetView.as_view(
template_name='accounts/reset_password.html',
'post_reset_redirect': 'accounts:password_reset_done'
),
name='reset_password'
)
此冒号语法用于字典。对于参数,它是identifier=expression
,所以:
from django.urls import reverse_lazy
url(
r'^reset-password/$',
PasswordResetView.as_view(
template_name='accounts/reset_password.html',
success_url=reverse_lazy('accounts:password_reset_done')
),
name='reset_password'
)
post_reset_redirect
已作为参数被删除,但是success_url
执行相同的功能:在成功处理POST请求之后,它是重定向到的URL。
错误的语法可能源自以下事实:使用基于功能的视图时,您通过kwargs
参数传递了参数,该参数接受了字典。
但是,基于类的视图通过.as_view(..)
调用获取这些参数。此外,基于类的视图通常旨在概括该过程,并且success_url
用于FormView
。