gpt4 book ai didi

python - 如何在 Django 密码重置中为密码重置添加用户名和电子邮件选项?

转载 作者:太空宇宙 更新时间:2023-11-03 13:47:28 24 4
gpt4 key购买 nike

我正在使用 Django 内置密码来允许用户重置密码。我的 password_reset_form.html 如下所示:

{% block title %}Reset Password{% endblock %}

{% block content %}
<p>Please specify your email address to receive instructions for resetting it.</p>

<form action="" method="post">
<div style="display:none">
<input type="hidden" value="{{ csrf_token }}" name="csrfmiddlewaretoken">
</div>
{{ form.email.errors }}
<p><label for="id_email">E-mail address:</label> {{ form.email }} <input type="submit" value="Reset password" /></p>
</form>
{% endblock %}

目前,用户可以输入他们的电子邮件地址,密码重置说明会发送给用户。我想对此进行修改,以便用户可以输入他们的用户名或电子邮件地址,并通过电子邮件接收密码重置说明。我应该直接转到 dist-packages 并开始编辑密码重置文件还是应该做其他事情?如果用户输入他们的用户名,我可以使用他们的用户名找到用户的电子邮件地址:

if not '@' in new_mail:
email = User.objects.filter(username=new_mail).values_list('email')
new_mail1 = email[0]

我该怎么做?谢谢

最佳答案

你绝对不应该编辑 dist-packages 文件。内置 View 和表单不支持您想要的行为。我认为可以复制涉及的 View 和表单的实现并修改它们。复制django.contrib.auth.views.password_reset查看您的 View 文件。复制django.contrib.auth.forms.PasswordResetForm到您的表单文件并向其添加用户名字段并修改用户搜索代码以根据指定的内容搜索电子邮件或用户名。将 password_reset View 中使用的表单类更改为新的 PasswordResetForm。这应该足够了。

关于python - 如何在 Django 密码重置中为密码重置添加用户名和电子邮件选项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16729189/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com