【发布时间】:2021-05-22 13:08:55
【问题描述】:
我正在关注 Corey Schafer 视频讲座>>密码重置电子邮件
urls.py
from django.contrib import admin
from django.contrib.auth import views as auth_views
from django.urls import path, include
from users import views as user_views
from django.conf import settings
from django.conf.urls.static import static
urlpatterns = [
path('admin/', admin.site.urls),
path('', include('blog.urls')),
path('profile/', user_views.profile, name='profile'),
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'),
]
if settings.DEBUG:
urlpatterns += static(settings.MEDIA_URL,
document_root=settings.MEDIA_ROOT)
并为这些路线创建了 3 个 HTML 文件
但是根据他的演讲>>然后他点击按钮(请求重置密码)他收到了noReverseMatch Reverse for 'password_reset_confirm' bla bla bla之类的错误
然后他创建了另一个路由来处理这个问题,即 ('password-reset-confirm///')
但就我而言 当我点击按钮请求重置密码时,它会将我带到这条路线 “密码重置/完成/”(没有错误,没有发送电子邮件)
settings.py
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST = "smtp.gmail.com"
EMAIL_PORT = 587
EMAIL_USE_TLS = True
EMAIL_HOST_USER = config.EMAIL
EMAIL_HOST_PASSWORD = config.PASS
【问题讨论】:
-
意思是。问题不在于您的代码,而在于发送电子邮件。
-
您在 Google 设置中成功创建应用了吗?
-
但我也关闭了 step2 验证打开不太安全的应用程序访问 ||是的,应用程序创建成功,当我通过点击该按钮请求重置密码时(他们没有通过 django 发送电子邮件的努力)将其顺利发送到路由(name='password_reset_done'),因为我从未请求过此类电子邮件
-
你为什么把
config.EMAIL放在EMAIL_HOST_USER中?将您的email放在EMAIL_HOST_USER和app password放在EMAIL_HOST_PASSWORD。 -
密码邮箱和secret_key保存在config.py文件中
标签: django django-rest-framework django-forms python-django-storages