假设我有 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/