簡體   English   中英

Django密碼重置自定義模板不起作用

[英]Django Password-Reset Custom Template not working

我想使用Django的內置PasswordChangeView讓用戶重置密碼。 我的PasswordResetView和我的PasswordResetDoneView正常工作。

Django總是給我錯誤:

NoReverseMatch at /reset
Reverse for 'password_reset_confirm' with keyword arguments
  '{'uidb64': 'MTM', 'token': '549-1f211ad25c6d91e420a4'}' not found.
  1 pattern(s) tried: ['password_change/$']

我已經嘗試添加:

path(
    'password_change/',
    auth_views.PasswordResetConfirmView,
    {"template_name": "authenticate/reset/password_change.html"},
    name="password_reset_confirm"),

但這並沒有改變任何東西。

我的網址模式:

path(
    'reset',
    auth_views.PasswordResetView.as_view(
        template_name='authenticate/password/reset/reset.html'),
    {
        'template_name': 'email/test.html',
        'html_email_template_name': 'email/test.html',
        'email_template_name': 'email/test.txt',
        'subject_template_name': 'email/test.txt',
    },
    name='password_reset'),
path(
    'reset/done',
    auth_views.PasswordResetDoneView.as_view(
        template_name='authenticate/password/reset/done.html'),
    name='password_reset_done'),
path(
    'password_change/',
    auth_views.PasswordResetConfirmView,
    {"template_name": "authenticate/password/reset/confirm.html"},
    name="password_reset_confirm"),
path(
    'password_change/',
    auth_views.PasswordResetCompleteView,
    {"template_name": "authenticate/password/reset/complete.html"},
    name="password_reset_complete"),

如果您閱讀有關PasswordResetConfirmView的文檔,則可以看到:

URL中的關鍵字參數:

  • uidb64 :以64為底的用戶ID。

  • token :用於檢查密碼是否有效的令牌。

因此,這意味着您需要從以下位置更改您的網址

path('password_change/', auth_views.PasswordResetConfirmView ...

類似於這樣的東西

path('password_change/<uidb64>/<token>/', auth_views.PasswordResetConfirmView ...

您將必須找出適合您的確切格式,但這應該為您指明正確的方向。

暫無
暫無

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

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