我需要覆盖django-eav应用管理员类。在eav/admin.py
模型中已注册:admin.site.register(Value)
。我需要将 list_display 添加到此模型中。我知道修改已安装的应用程序代码是不好的做法,所以我需要覆盖它。但是,不知道如何。在我自己的app/admin.py
我有:
class EavValueAdmin(ModelAdmin):
list_display = ('__unicode__', 'value_text', )
#unregistering class from eav.admin
admin.site.unregister(Value)
admin.site.register(Value, EavValueAdmin)
这给了我一个错误: NotRegistered:模型值未注册。
如果我尝试对此行发表评论:admin.site.unregister(Value)
,也会出错: AlreadyRegistered:模型值已注册。我怎样才能克服这个问题?
答案 0 :(得分:6)
Django应用按照INSTALLED_APPS
settings.py
中列出的顺序加载。因此,app
必须在django-eav
之后才能取消注册:
INSTALLED_APPS = [...
'django-eav',
...
'my_app',
]
通常,您的应用必须来自内置和第三方应用。在更改订单后,您必须测试项目以确定一切是否顺利进行。