django 在哪里修改第三方应用的管理视图代码?

wfsdck30  于 2022-12-05  发布在  Go
关注(0)|答案(2)|浏览(116)

我在我的Django Web应用中使用了第三方应用。但是我想在第三方应用中为其中一个模型自定义管理视图。自定义不仅仅是改变change_list.html模板,也就是说,我需要添加代码来与外部Web服务等进行对话。
但是,我不想修改第三方应用,而是想覆盖它。如何覆盖来自第三方应用的模型的ModelAdmin

nzkunb0c

nzkunb0c1#

这应该可以让您开始:

from django.contrib import admin
from thirdpartyapp.models import ThirdPartyModel
from thirdpartyapp.admin import ThirdPartyAdmin

class CustomThirdPartyAdmin(ThirdPartyAdmin):
    pass

admin.site.unregister(ThirdPartyModel)
admin.site.register(ThirdPartyModel, CustomThirdPartyAdmin)

我经常使用它来自定义UserAdmin as shown in this answer

watbbzwu

watbbzwu2#

对于那些在将代码放在任何app/ www.example.com文件上后admin.py,并得到此错误的人:
django.contrib.admin.sites.NotRegistered: The model <MODEL_APP_NAME> is not registered
您需要更改管理视图的名称,例如添加"Custom<Model_NAME>Admin",我认为使用相同的模型管理名称会有冲突。

相关问题