我有几个模型看起来像:
class Page(SomeBaseClass):
# random fields
class Link(Page):
# some other fields
在我的admin.py
我注册了这些课程:
admin.site.register(Page) # shows both Pages and Links
admin.site.register(Link) # shows only Links
此时,管理员中的“页面”标签同时显示Page
和Link
,“链接”标签仅显示Link
。是否可以从“页面”标签中排除Link
模型?
答案 0 :(得分:4)
您可以为模型管理员覆盖get_queryset
,并使用isnull
过滤没有孩子的对象。
class PageAdmin(admin.ModelAdmin):
def get_queryset(self, request):
qs = super(PageAdmin, self).get_queryset(request)
return qs.filter(link__isnull=True)
admin.site.register(Page, PageAdmin)