电子邮件密码重置系统的错误



我一直在使用电子邮件创建用于重置密码的系统遇到困难。昨天我遇到了一个无法解决的问题:使用密码重置电子邮件noreversematch错误

阅读了一些相关文档后,我试图用以下1.11中引入的基于类的等效替换视图:

urls.py:

from django.contrib.auth import views as auth_views
urlpatterns = [
    url(r'^$', auth_views.login, name='login'),
    url(r'^logout/$', auth_views.logout, name='logout'),
    ## more irrelevant urls here ##
    url(r'^password/reset/done/$', auth_views.PasswordResetDoneView, name='password_reset_done'),
    url(r'^password/reset/$', auth_views.PasswordResetView, name='password_reset'),
    url(r'^password/reset/(?P<uidb64>[0-9A-Za-z_-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', auth_views.PasswordResetConfirmView, name='password_reset_confirm'),
    url(r'^password/reset/complete/$', auth_views.PasswordResetCompleteView, name='password_reset_complete'),
]

这引入了一个新错误,这不是很有帮助:

Internal Server Error: /password/reset/
Traceback (most recent call last):
  File "C:pythonlibsite-packagesdjangocorehandlersexception.py", line 41, in inner
    response = get_response(request)
  File "C:pythonlibsite-packagesdjangocorehandlersbase.py", line 187, in _get_response
    response = self.process_exception_by_middleware(e, request)
  File "C:pythonlibsite-packagesdjangocorehandlersbase.py", line 185, in _get_response
    response = wrapped_callback(request, *callback_args, **callback_kwargs)
TypeError: __init__() takes 1 positional argument but 2 were given
[11/Feb/2018 12:35:38] "GET /password/reset/ HTTP/1.1" 500 62168

如何使系统工作?

您需要在url.py中调用基于类的视图的as_view方法:

url(r'^password/reset/done/$', auth_views.PasswordResetDoneView.as_view(), name='password_reset_done'),
url(r'^password/reset/$', auth_views.PasswordResetView.as_view(), name='password_reset'),
url(r'^password/reset/(?P<uidb64>[0-9A-Za-z_-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$', auth_views.PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
url(r'^password/reset/complete/$', auth_views.PasswordResetCompleteView.as_view(), name='password_reset_complete'),

相关内容

最新更新