【问题标题】:cannot reset password django 2.1无法重置密码django 2.1
【发布时间】:2018-12-15 13:05:26
【问题描述】:

django 2.1 无法重置密码

TypeError: PasswordResetDoneView() received an invalid keyword 'success_url'. as_view only accepts arguments that are al
ready attributes of the class in dhango 2.1

在重定向到重置视图时,它会显示此错误。 mu urls.py 是: from django.urls 导入路径,reverse_lazy 从 .import 视图 from django.contrib.auth.views import LoginView,LogoutView,PasswordResetView,PasswordResetDoneView,PasswordResetConfirmView,PasswordResetCompleteView

app_name='account'
urlpatterns = [

   path('',views.home,name='home'),
   path('login/',LoginView.as_view(template_name='account/login.html'),name='login'),
   path('logout/',LogoutView.as_view(template_name='account/logout.html'),name='logout'),
   path('register',views.register),
   path('profile',views.view_profile,name='view_profile'),
   path('profile/edit',views.edit_profile,name='edit_profile'),
   path('change_password',views.change_password,name='change_password'),
   path('password_reset/', PasswordResetView.as_view(template_name='account/reset_password.html',email_template_name='account/reset_password_email.html',success_url = reverse_lazy('password_reset_done')), name='password_reset'),
   path('password_reset/done/',PasswordResetDoneView.as_view(template_name='account/reset_password_done.html',success_url = reverse_lazy('account:password_reset_complete')), name='password_reset_done'),
   path('password_reset/confirm/<uidb64>/<token>/',PasswordResetConfirmView.as_view(), name='password_reset_confirm'),
   path('password_reset/complete/',PasswordResetCompleteView.as_view(), name='password_reset_complete'),
   ]

如何解决?

【问题讨论】:

    标签: django-templates


    【解决方案1】:

    改为:

    path('password_reset/done/',PasswordResetDoneView.as_view(template_name='account/reset_password_done.html',success_url = reverse_lazy('account:password_reset_complete')), name='password_reset_done')
    

    你应该:

    success_url 放入PasswordResetConfirmView,因为这将重定向到 PasswordResetComplete,如下所示:

    path('password_reset/confirm/<uidb64>/<token>/',PasswordResetConfirmView.as_view(success_url = reverse_lazy('account:password_reset_complete'), name='password_reset_confirm')
    

    有关更多信息,请阅读文档: https://docs.djangoproject.com/en/2.2/topics/auth/default/

    【讨论】:

      猜你喜欢
      • 2019-05-04
      • 1970-01-01
      • 2015-04-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-02-12
      • 1970-01-01
      相关资源
      最近更新 更多