Django 重置密码的代码
时间: 2023-06-12 17:03:07 浏览: 67
下面是 Django 中重置密码的代码:
```python
from django.contrib.auth.forms import PasswordResetForm
from django.core.mail import send_mail
from django.urls import reverse_lazy
from django.views.generic.edit import FormView
class PasswordResetView(FormView):
form_class = PasswordResetForm
template_name = 'password_reset.html'
success_url = reverse_lazy('password_reset_done')
def form_valid(self, form):
form.save(
use_https=self.request.is_secure(),
email_template_name='password_reset_email.html',
subject_template_name='password_reset_subject.txt',
request=self.request,
)
email = form.cleaned_data['email']
send_mail(
'Password reset',
'Please follow the link to reset your password.',
'noreply@example.com',
[email],
fail_silently=False,
)
return super().form_valid(form)
```
需要注意的是,这里使用了 Django 默认提供的 `PasswordResetForm` 表单类,需要在模板中使用 `{% csrf_token %}` 来防止跨站请求伪造。另外,还需要配置邮件发送的相关设置,在 `settings.py` 文件中设置 `EMAIL_HOST`、`EMAIL_PORT`、`EMAIL_HOST_USER`、`EMAIL_HOST_PASSWORD` 等参数。