我正在使用 Django 构建
PasswordResetView class.
我在设置中使用Django 文件后端
。我尝试重置现有帐户的密码,django 返回成功,但仍然没有发送电子邮件。
以下是引用代码:
设置.py
EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = os.path.join(BASE_DIR,'sent_emails')
View .py
class MyPasswordReset(PasswordResetView):
email_template_name = 'email/forgot_password.html'
form_class = ForgotPassword
from_email = '<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="a8c9ccc5c1c6e8cbdaddcc86cbc7c5" rel="noreferrer noopener nofollow">[email protected]</a>'
success_url = reverse_lazy('users:password_reset_done')
表单.py
class ForgotPassword(PasswordResetForm):
email = forms.EmailField(widget=forms.EmailInput(attrs=
{'class': 'form-control', 'title': 'Enter Email', 'placeholder': 'Email'}),
max_length=50, label=False, required=True,
)
密码重置电子邮件模板
电子邮件/forgot_password.html
you forgot your password!! Sample Email
完整引用代码: https://github.com/deepak1725/basicCrud/tree/dk-signup/users
最佳答案
经过深入分析,我发现,我将电子邮件存储在身份验证用户表的用户名字段中。
因此,在使用内置的重置密码 View 时,它会通过电子邮件字段上的数据库进行查询,因此发现电子邮件字段为空。因此,返回的结果为空,因此不处理电子邮件发送。
关于django - 密码重置 View 不发送电子邮件(Django 1.11),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45262279/