gpt4 book ai didi

python - 您可以为一个模型注册多个模型管理员吗?备择方案?

转载 作者:太空狗 更新时间:2023-10-29 20:19:19 26 4
gpt4 key购买 nike

假设我有 Django 模型类:

class Foo(models.Model):
bar = models.CharField()
baz = models.CharField()

和模型管理员:

class Foo_Admin_1(admin.ModelAdmin):
list_display = ['id','bar']

class Foo_Admin_2(admin.ModelAdmin):
list_display = ['id','baz']

有什么方法可以注册两个 ModelAdmin 以便它们显示在 Django 管理界面下?

我试过:

admin.site.register(Foo,Foo_Admin_1)
admin.site.register(Foo,Foo_Admin_2)

但是我得到了错误:

The model Foo is already registered

有什么建议吗?

如果没有,是否有替代方法(动态地)控制 ModelAdmin 更改 ListView 中显示的字段?

最佳答案

创建一个空的代理子类并注册它:

class Foo(models.Model):
bar = models.CharField()
baz = models.CharField()

# admin.py
class FooProxy(Foo):
class Meta:
proxy=True

admin.site.register(Foo, FooAdmin1)
admin.site.register(FooProxy, FooAdmin2)

关于python - 您可以为一个模型注册多个模型管理员吗?备择方案?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4716880/

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