首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Django中自定义管理表单,同时也使用自动发现

在Django中自定义管理表单,同时也使用自动发现
EN

Stack Overflow用户
提问于 2009-01-23 01:38:17
回答 2查看 14.8K关注 0票数 26

我想修改Django内置的django.contrib.auth模块的一些微小细节。具体来说,我想要一个不同的形式,使用户名电子邮件字段(和电子邮件替代电子邮件地址。(我不想修改auth,而不是必要的--一个简单的表单更改似乎就足够了。)

当我将autodiscover与定制的ModelAdmin用于auth时,最终会与auth自己的管理界面发生冲突,并得到一个“已经注册”的错误。

看起来我必须创建我自己的管理站点,列举我所有的模型。它只有18个类,但似乎是一个枯燥的问题-每次更改都需要添加到模型添加到定制的管理站点。

或者,我是否应该编写我自己版本的“带有排除的autodiscover”,以便实质上导入除 auth以外的所有admin模块

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2009-01-23 02:22:18

以上都不是。只需使用admin.site.unregister()即可。下面是我最近如何在admin中的is_active上添加过滤用户(n.b. is_active筛选现在默认位于Django核心中的用户模型上;仍然在这里作为一个示例工作),所有内容都很枯燥:

代码语言:javascript
运行
复制
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User

class MyUserAdmin(UserAdmin):
    list_filter = UserAdmin.list_filter + ('is_active',)

admin.site.unregister(User)
admin.site.register(User, MyUserAdmin)
票数 53
EN

Stack Overflow用户

发布于 2009-01-23 11:30:25

我认为,使用自定义的auth后端可以更容易地做到这一点,从而消除对自定义ModelAdmin的需求。

我对这段代码做了类似的事情:http://www.djangosnippets.org/snippets/74/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/471550

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档