Tom*_*and 9 python django django-models django-admin
假设我有Django模型类:
class Foo(models.Model):
bar = models.CharField()
baz = models.CharField()
Run Code Online (Sandbox Code Playgroud)
和ModelAdmins:
class Foo_Admin_1(admin.ModelAdmin):
list_display = ['id','bar']
class Foo_Admin_2(admin.ModelAdmin):
list_display = ['id','baz']
Run Code Online (Sandbox Code Playgroud)
有没有办法注册两个ModelAdmins,以便它们出现在Django Admin界面下?
我试过了:
admin.site.register(Foo,Foo_Admin_1)
admin.site.register(Foo,Foo_Admin_2)
Run Code Online (Sandbox Code Playgroud)
但我得到错误:
The model Foo is already registered
Run Code Online (Sandbox Code Playgroud)
有什么建议?
如果没有,是否有其他方法(动态)控制ModelAdmin更改列表视图中显示的字段?
Mik*_*bov 11
创建一个空的代理子类并注册它:
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)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1680 次 |
| 最近记录: |