簡體   English   中英

在/ password_reset / done /處執行NoReverseMatch

[英]NoReverseMatch at /password_reset/done/

我剛剛從本教程中學到了如何在django中重置密碼。 但我無法解決

錯誤:/ password_reset / done中沒有NoReverseMatch

 from django.contrib.auth import views as auth_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'),
    ]

追溯的主要部分是:

Reverse for 'password_reset_confirm' with keyword arguments 
'{u'uidb64': '', u'token': ''}' not found. 1 pattern(s) tried: 
['reset/(?P<uidb64>[0-9A-Za-z_\\-]+)/(?P<token>[0-9A-Za-z]{1,13}-[0-9A-Za-z]{1,20})/$']

空字符串與url不匹配正則表達式。 您必須使用適當的uidb64token調用reverse() 您是否將它們傳遞到模板上下文中?

您的password_reset_done.html模板不正確。 它包含以下導致錯誤的url標記。

{% url 'password_reset_confirm' uidb64=uid token=token %} 

但是,該url屬於password_reset_email.html模板,該模板已呈現並通過電子郵件發送給用戶。

password_reset_done.html模板應告知用戶密碼已重置,並檢查其電子郵件。 您鏈接到的教程顯示了一個有效的模板,您已錯誤地復制了它。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM