【问题标题】:2 password reset e-mails in Django every time I try to reset a password每次我尝试重置密码时,Django 中的 2 封密码重置电子邮件
【发布时间】:2020-06-07 02:31:07
【问题描述】:

我是 Django 的初学者,我一直在关注在线教程来构建 Web 应用程序。在过去的几天里,我一直在尝试将密码重置功能添加到应用程序中。我设置了一个谷歌应用密码,终于让密码重置工作了。但是现在,每次我尝试重置密码时,我的电子邮件帐户都会收到 2 封密码重置电子邮件。我已成功重置密码几次,但每次尝试重置密码时,我都会继续收到两封电子邮件。我试图在网上寻找答案,但找不到任何东西。我还用教程交叉检查了我的代码。以下是一些可能相关的代码 sn-ps:

项目设置.py:

EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = os.environ.get('EMAIL_USER')
EMAIL_HOST_PASSWORD = os.environ.get('EMAIL_PASS')

项目 urls.py:

from django.contrib import admin
from django.urls import path, include
from users import views as user_views
from django.contrib.auth import views as auth_views
from django.conf import settings
from django.conf.urls.static import static

urlpatterns = [
        path('admin/', admin.site.urls),
        path('register/', user_views.register, name='register'),
        path('login/', auth_views.LoginView.as_view(template_name='users/login.html'), name='login'),
        path('logout/', auth_views.LogoutView.as_view(template_name='users/logout.html'), name='logout'),
        path('password-reset/', auth_views.PasswordResetView.as_view(template_name='users/password_reset.html'),
             name='password_reset'),
        path('password-reset/done/', auth_views.PasswordResetDoneView.as_view(
            template_name='users/password_reset_done.html'), name='password_reset_done'),
        path('password-reset-confirm/<uidb64>/<token>/', auth_views.PasswordResetConfirmView.as_view(
            template_name='users/password_reset_confirm.html'), name='password_reset_confirm'),
        path('password-reset-complete/', auth_views.PasswordResetCompleteView.as_view(
            template_name='users/password_reset_complete.html'), name='password_reset_complete'),
        path('profile/', user_views.profile, name='profile'),
        path('', include('blog.urls')),
    ]

任何帮助将不胜感激。谢谢!

PS:这是我在 StackOverflow 上的第一个问题。如果我能以任何方式改进它,请告诉我。

【问题讨论】:

  • 你从哪里导入auth_views
  • @ArakkalAbu 我已编辑问题以显示所有导入
  • 太棒了。由于您使用的是内置视图,我认为问题不属于代码库。尝试使用其他一些电子邮件提供商,例如Send GridMail Gun 等。
  • @SultanSinghAtwal 并确保只有 1 个密码重置 URL 请求。
  • 可能是你的模板代码导致的,比如表单发送了两次

标签: python django passwords


【解决方案1】:

我也遇到了同样的问题,但是答案很简单:

我敢打赌,您有 2 个使用相同邮件地址的 Django 帐户。就我而言,我有一个普通的用户帐户,但我也是 Django 的管理员,并且也为管理员帐户使用相同的邮件地址。 :)

Django 循环遍历所有帐户并向邮件地址匹配的每个用户发送邮件。

【讨论】:

  • 我也遇到了同样的问题,但是当我通过那个邮箱搜索用户时,只有一个用户,不知道怎么回事:(
猜你喜欢
  • 2020-02-15
  • 2017-01-25
  • 2019-05-01
  • 2013-12-18
  • 2012-03-09
  • 2010-11-21
  • 2018-05-24
  • 2021-10-24
  • 1970-01-01
相关资源
最近更新 更多