django - 密码重置 View 不发送电子邮件(Django 1.11)

标签 django django-forms django-views

我正在使用 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/

相关文章:

jquery - 如何在 django 中序列化字典以在 Jquery 中呈现 [问题级别 - 初学者]

Django 模型字段索引

python - Django 中的 Fabric。如何解决等待 SSH 完成的 View

django - 向外键字段的小部件输出添加额外的数据

django - 'ManyToManyDescriptor'对象在django 2中没有属性'all'

python - django - int 参数必须是字符串或数字,而不是 'Tuple'

javascript - 使用按键代替 django 表单中的按钮

python - 如何在 Django 中连接来自不同应用程序的模型?

Django:AttributeError 'WSGIRequest' 对象没有属性 'get'

python - 如何修复 Django Rest API 错误?