我用这些作为我的网址。我发现你的主要区别是密码重置确认。确保你传递了令牌。在from django.contrib.auth import views as auth_views
path('password-reset/', auth_views.PasswordResetView.as_view(template_name='users/password_reset.html'), name='password_reset'),
path('password-reset-confirm///', auth_views.PasswordResetConfirmView.as_view(template_name='users/password_reset_confirm.html'), name='password_reset_confirm'),
path('password-reset/done/', auth_views.PasswordResetDoneView.as_view(template_name='users/password_reset_done.html'), name='password_reset_done'),
path('password-reset-complete/', auth_views.PasswordResetCompleteView.as_view(template_name='users/password_reset_complete.html'),
我的设置如下所示
^{pr2}$
另外请注意,您需要设置一个g-mail帐户,以允许Django或任何其他应用程序访问它,它不会自动工作。执行此操作后收到的密码与您通常登录时使用的密码不同。这可能是你的问题。在
我看到你在你的密码重置确认URL中丢失了令牌,这也许也是你没有令牌生成器的问题。在from django.contrib.auth.tokens import PasswordResetTokenGenerator
from django.utils import six
class TokenGenerator(PasswordResetTokenGenerator):
def _make_hash_value(self, user, timestamp):
return (
six.text_type(user.pk) + six.text_type(timestamp) + six.text_type(user.is_active)
)
account_activation_token = TokenGenerator()
我在一个名为token的文件中创建了这个文件_生成器.py. 在