gpt4 book ai didi

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

转载 作者:IT老高 更新时间:2023-10-28 22:20:47 26 4
gpt4 key购买 nike

我想修改 Django 内置 django.contrib.auth 模块的一些小细节。具体来说,我想要一个不同的表单,使用户名成为电子邮件字段(并通过电子邮件发送备用电子邮件地址。(我宁愿不修改 auth 任何必要的 - 一个简单的表单更改 似乎 就是所有需要的。)

当我将 autodiscoverauth 的自定义 ModelAdmin 一起使用时,我最终会与 auth 自己的冲突管理界面并收到“已注册”错误。

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

或者,我是否应该编写自己的“autodiscover with excludes”版本来导入所有 admin 模块 except auth ?

最佳答案

以上都不是。只需使用 admin.site.unregister()。这是我最近在管理员中添加过滤用户 is_active 的方法(n.b. is_active 过滤现在默认在 Django 核心中的用户模型上;仍然作为示例在这里工作),所有 DRY 都可以:

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)

关于python - 在 Django 中自定义管理表单,同时使用自动发现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/471550/

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