tam*_*.py 4 python authentication django
您好,我正在尝试在 Django 中创建密码重置视图。我已经设置了邮件后端、网址和模板。一切看起来都很好,但是当我尝试发送邮件以重置密码时,Django 正在发送多封电子邮件。例如同时使用 7 或 11 个密码重置电子邮件。我怎样才能让它每次只发送一封电子邮件。
非常感谢
这就是我所做的:
设置.py:
EMAIL_BACKEND = 'django.core.mail.backends.smtp.EmailBackend'
EMAIL_HOST_USER = "my_email"
EMAIL_HOST_PASSWORD = "my_password"
EMAIL_HOST = 'smtp.gmail.com'
EMAIL_PORT = 587
EMAIL_USE_TLS = True
Run Code Online (Sandbox Code Playgroud)
网址.py
path('password-reset/',
auth_views.PasswordResetView.as_view(template_name='accounts/password_reset.html'),
name='password_reset'),
path('password-reset/done/',
auth_views.PasswordResetDoneView.as_view(template_name='accounts/password_reset_done.html'),
name='password_reset_done'),
path('password-set-confirm/<uidb64>/<token>/',
auth_views.PasswordResetConfirmView.as_view(template_name='accounts/password_reset_confirm.html'),
name='password_reset_confirm'),
path('password-set-complete/',
auth_views.PasswordResetCompleteView.as_view(template_name='accounts/password_reset_complete.html'),
name='password_reset_complete'),
Run Code Online (Sandbox Code Playgroud)
此外,我为每个视图设置了模板。
检查 Django 源代码本身有时会有所帮助,因此如果您不明白发生了什么,请始终深入研究。
如果您查看 中PasswordResetForm的save()方法django.contrib.auth.forms,您会看到它循环遍历self.get_users(email),然后为每个发送一封(且仅发送一封)电子邮件user。
因此,可以发送多封电子邮件的唯一方法是,如果有多个用户使用相同的email.
| 归档时间: |
|
| 查看次数: |
1155 次 |
| 最近记录: |