我尝试在我的网站中实现内置的Django身份验证视图,以帮助用户重置密码。我已经设置了根URL以在django.contrib.auth.urls中包含提供的URLconf,如下所示:
path('', include('django.contrib.auth.urls'))
我已将模板目录中的所有模板设置在注册文件夹中。
所以,如果我转到/password_reset
,我会得到正确的页面来更改我的密码
如果我输入电子邮件,我会收到更改密码电子邮件。
如果我点击电子邮件中的链接,我会转到reset/***/set-password page
但是,如果我尝试输入新密码,则提交并转到reset/done
,但我收到以下错误:
NoReverseMatch at /reset/done/
Reverse for 'sign_in' not found. 'sign_in' is not a valid view function or pattern name.
我也有一个'帐户'我的项目中的应用包含自定义' sign_in'网址。这可能是问题吗?这是否覆盖了Django的某种预先构建的sign_in页面?
app_name = "accounts"
urlpatterns = [
url(r'sign_in/$', views.sign_in, name='sign_in'),
url(r'sign_up/$', views.sign_up, name='sign_up'),
url(r'sign_out/$', views.sign_out, name='sign_out'),
url(r'profile/$', views.view_profile, name='profile'),
url(r'profile/edit/$', views.edit_profile, name='edit_profile'),
url(r'profile/change_password/$', views.change_password, name='change_password'),
url(r'favorites/$', views.view_favorites, name='favorites'),
url(r'^subscribe/', views.subscribe, name = "subscribe"),
答案 0 :(得分:0)
好的,这是一个非常简单的修复方法。在settings.py文件中,我需要将LOGIN_URL
设置为sign_in
,因为它需要包含应用程序的名称,例如accounts:sign_in