Django 自定义创建密码重置确认页面
要实现上述功能,你需要修改模板文件以添加“忘记密码”链接,并创建新的视图函数来处理密码丢失修改页面、验证和密码修改。下面是你可以进行的步骤:
1. 修改模板文件
在登录页面的表单下方添加一个“忘记密码”链接:
<div class="form-group text-center"> <button type="submit" class="btn btn-primary btn-block">登录</button> <a href="{% url 'register' %}" class="btn btn-link">注册</a> <a href="{% url 'forgot_password' %}" class="btn btn-link">忘记密码</a> {# 添加忘记密码链接 #} </div>
2. 创建相应的视图和 URL
在你的应用中创建相应的视图函数来处理忘记密码功能。
# views.py from django.contrib.auth.forms import PasswordResetForm from django.shortcuts import render, redirect from django.urls import reverse from django.contrib import messages def forgot_password(request): if request.method == 'POST': form = PasswordResetForm(request.POST) if form.is_valid(): form.save(request=request) messages.success(request, '密码重置邮件已发送到您的邮箱,请检查您的邮箱并按照邮件指示重置密码。') return redirect(reverse('login')) else: form = PasswordResetForm() return render(request, 'forgot_password.html', {'form': form})
然后,创建一个模板文件 forgot_password.html
,用于显示密码重置表单。
3. 配置 URL
在你的应用的 URL 配置中添加一个用于忘记密码的 URL,并将其指向新的视图函数。
# urls.py from django.urls import path from .views import forgot_password urlpatterns = [ # 其他 URL 配置... path('forgot_password/', forgot_password, name='forgot_password'), ]
4. 配置邮件设置
在 Django 项目的设置中配置邮件设置,以便 Django 能够发送密码重置邮件到用户的注册邮箱。你需要配置邮件服务器等相关信息。
5. 创建密码重置确认页面
当用户点击重置密码邮件中的链接时,他们将被导向到一个确认页面,用于输入新密码。你需要创建这个页面以及相应的视图函数来处理密码重置确认。
实现以上步骤后,你的用户将能够通过点击“忘记密码”链接来请求密码重置邮件。他们将会收到一封包含重置密码链接的邮件,通过该链接可以跳转到确认页面,完成密码重置过程。