Django管理覆盖已注册mod

2024-06-16 14:41:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要重写django-eav应用程序管理类。在eav/admin.py中注册了模型:admin.site.register(Value)。我需要将列表显示添加到这个模型中。我知道修改已安装的应用程序代码是不好的做法,所以我需要重写它。但是,不知道怎么做。在我自己的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:模型值已经注册。我怎样才能克服这个问题?在


Tags: djangopy模型register应用程序列表adminvalue
1条回答
网友
1楼 · 发布于 2024-06-16 14:41:58

Django应用程序的加载顺序是它们在您的settings.py中的INSTALLED_APPS中列出的顺序。因此,您的app必须在django-eav之后才能注销它:

INSTALLED_APPS = [...
   'django-eav',
   ...
   'my_app',
]

通常你的应用程序必须在内置和第三方应用程序之后。你必须测试你的项目,看看是否一切顺利后,改变顺序。在

相关问题 更多 >