密码重置视图不发送电子邮件(Django 1.11)

Dee*_*rma 2 django django-forms django-views

我正在使用 Django Build in

PasswordResetView 类。

Django File backend在设置中使用。我尝试重置现有帐户的密码,django 返回成功,但仍然没有发送电子邮件。下面是代码供参考:

设置.py

 EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = os.path.join(BASE_DIR,'sent_emails')
Run Code Online (Sandbox Code Playgroud)

视图.py

class MyPasswordReset(PasswordResetView):
email_template_name = 'email/forgot_password.html'
form_class = ForgotPassword
from_email = 'admin@crud.com'
success_url = reverse_lazy('users:password_reset_done')
Run Code Online (Sandbox Code Playgroud)

表单.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,
                         )
Run Code Online (Sandbox Code Playgroud)

密码重置电子邮件模板

电子邮件/forgot_password.html

you forgot your password!! Sample Email
Run Code Online (Sandbox Code Playgroud)

完整参考代码:https : //github.com/deepak1725/basicCrud/tree/dk-signup/users

Dee*_*rma 5

经过深入分析,我发现,我将电子邮件存储在 auth User 表的用户名字段中。

因此,在使用内置的重置密码视图时,它通过电子邮件字段上的数据库进行查询,因此发现电子邮件字段为空。因此,返回的结果为空,因此不处理电子邮件发送。