问题描述
我正在关注 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
解决方法
对于那些像我一样在这个电子邮件发送教程中苦苦挣扎的人:如果您没有收到任何电子邮件并且没有收到任何错误,那么如果您在表单中提交的电子邮件地址,Django 似乎不会发送电子邮件与在数据库中为用户注册的电子邮件不匹配(在配置文件和管理页面中指定)。 换句话说,我在重置密码时没有错误,但我也没有收到任何电子邮件。经过几个小时的努力,我刚刚更改了用户电子邮件地址,使其与我想要发送电子邮件的地址相匹配,并且可以正常工作。 (在 utube 评论中感谢 Elijah Mayorov)