我想修改Django内置django.contrib.auth
模块的一些小细节。具体来说,我想要一个不同的表单,使用户名成为一个电子邮件字段(和电子邮件一个备用电子邮件地址)。(我不想修改auth
任何多余的内容——一个简单的表单更改似乎就是所需要的。)
当我为auth
使用带有自定义ModelAdmin
的autodiscover
时,我最终与auth
自己的管理接口冲突,并得到一个“已注册”错误。
看起来我必须创建自己的管理站点,枚举所有模型。它只有18个类,但似乎是一个枯燥的问题——每次更改都需要同时添加到模型和添加到自定义管理站点。
或者,我是否应该编写自己版本的“autodiscover
with exclusions”来基本导入除auth
之外的所有admin
模块?
以上都不是。只需使用admin.site.unregister()。以下是我最近如何在管理员中添加过滤用户的方法(n.b.在Django core中,默认情况下,在用户模型上添加过滤用户的方法;这里仍然是一个示例),一切尽可能简单:
我认为使用自定义的auth后端来实现这一点可能更容易,因此不需要自定义的ModelAdmin。
我对这个片段做了类似的处理: http://www.djangosnippets.org/snippets/74/
相关问题 更多 >
编程相关推荐