Python django密码重置-如何设置属性

Python django密码重置-如何设置属性,python,django,django-forms,Python,Django,Django Forms,我试图使用django password reset()来允许用户恢复他们的密码 django password reset提供了一个表单,用户可以在其中输入用户名或电子邮件地址,并尝试在数据库中查找其中一个。 在我的项目中,用户没有用户名字段-只有电子邮件字段。 因此,我需要让它只通过“email”字段搜索用户,而不是通过“username”字段,这在我的系统中并不存在 项目文档中说,有一些属性可以改变这种行为: 但是,我无法找到如何设置这些属性 有人能帮忙吗?django密码重置的文档说明

我试图使用django password reset()来允许用户恢复他们的密码

django password reset提供了一个表单,用户可以在其中输入用户名或电子邮件地址,并尝试在数据库中查找其中一个。 在我的项目中,用户没有用户名字段-只有电子邮件字段。 因此,我需要让它只通过“email”字段搜索用户,而不是通过“username”字段,这在我的系统中并不存在

项目文档中说,有一些属性可以改变这种行为:

但是,我无法找到如何设置这些属性


有人能帮忙吗?

django密码重置的文档说明它使用
django.contrib.auth.models.User
(django内置的
用户
模型)搜索
用户名
电子邮件
。所以这里有一个用户名

如果要更改
django密码重置
的功能,可以进入
forms.py
文件,更改表单的
search_字段
变量(和其他逻辑),使其仅通过电子邮件进行搜索

以下是指向forms.py的超链接:


我首先更改
密码恢复格式

只需覆盖
恢复
视图,如下所示:

class MyRecover(Recover):
    search_fields = ['email']

myrecover = MyRecover.as_view()
因为有两个恢复URL,所以您需要先传递带有签名的URL,然后传递被覆盖的URL,然后传递包含的URL,这似乎不是很简单,但这是使URL正确调度的唯一方法:

url(r'^recover/(?P<signature>.+)/$', 'password_reset_recover.views.recover_done',
    name='password_reset_sent'),
# next we override our url, assuming your app name is called 'core'
url(r'^recover/$', 'core.views.myrecover', name='password_reset_recover'),
url(r'^/', include('password_reset.urls')),
url(r'^recover/(?P.+)/$),“密码重置\u recover.views.recover\u done”,
name='password\u reset\u sent'),
#接下来,我们覆盖我们的url,假设您的应用程序名为“核心”
url(r“^recover/$”,“core.views.myrecover”,name='password\u reset\u recover'),
url(r'^/',包括('password_reset.url'),

谢谢您的回答。但是,我希望避免直接更改django密码重置代码,因为我希望在另一台机器上部署系统,而不必在那里再次进行相同的更改。这很有效!我错过了网址。但是,我对代码进行了较小的修复(请参见编辑)。希望这些变化能得到应用。