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. 创建密码重置确认页面

当用户点击重置密码邮件中的链接时,他们将被导向到一个确认页面,用于输入新密码。你需要创建这个页面以及相应的视图函数来处理密码重置确认。

实现以上步骤后,你的用户将能够通过点击“忘记密码”链接来请求密码重置邮件。他们将会收到一封包含重置密码链接的邮件,通过该链接可以跳转到确认页面,完成密码重置过程。

posted @ 2024-04-24 09:42  侬侬发  阅读(21)  评论(0编辑  收藏  举报