首页 文章

django reset-password views,NoReverseMatch错误以及模板问题

提问于
浏览
0

我需要在我的应用程序中包含密码重置功能,但总是有NoReverseMatch错误 . 另外,我无法查看自己的密码重置过程模板 . 我在注册文件夹中创建了与我的应用程序的其他模板相同的目录中的模板:myapp / templates / registration

URLS.PY

from django.conf.urls import url, include
from django.contrib.auth import views as auth_views
from . import views

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

我没有密码重置的自定义视图 . 我应该为它创建视图吗?提前致谢 . Django版本1.11

1 回答

  • 0

    至于文件夹结构,你应该遵循django docs推荐,它指出你应该在模板中使用app的名称创建一个子文件夹:

    模板命名空间现在我们可以将我们的模板直接放在民意调查/模板中(而不是创建另一个民意调查子目录),但这实际上是个坏主意 . Django将选择它找到的第一个名称匹配的模板,如果你在不同的应用程序中有一个同名的模板,Django将无法区分它们 . 我们需要能够将Django指向正确的,并且确保这一点的最简单方法是通过命名它们 . 也就是说,将这些模板放在为应用程序本身命名的另一个目录中 .

    myapp/templates/myapp/registration #if this is a folder you call it in the views as 'myapp/registration/page.html'
    

相关问题