密码重置查看不发送电子邮件(Django 1.11)

时间:2017-07-23 06:43:19

标签: django django-forms django-views

我正在使用Django Build

  

PasswordResetView类。

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

settings.py

 EMAIL_BACKEND = 'django.core.mail.backends.filebased.EmailBackend'
EMAIL_FILE_PATH = os.path.join(BASE_DIR,'sent_emails')

views.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')

form.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

1 个答案:

答案 0 :(得分:3)

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

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