Python 一个型号django的两个管理类

Python 一个型号django的两个管理类,python,django,django-models,django-admin,Python,Django,Django Models,Django Admin,我需要在2个管理类的上下文中使用一个模型。这是我的模型: ITEM_STATUSES = ( ('pending', _('Waiting approval')), ('approved', _('Approved')), ('declined', _('Declined')) ) class Item(models.Model): title = models.CharField(max_length=64) description = models.TextField(blank=True

我需要在2个管理类的上下文中使用一个模型。这是我的模型:

ITEM_STATUSES = (
('pending', _('Waiting approval')),
('approved', _('Approved')),
('declined', _('Declined'))
)

class Item(models.Model):
title = models.CharField(max_length=64)
description = models.TextField(blank=True)
...
status = models.CharField(max_length=32, choices=ITEM_STATUSES)
...
我想用它两次。首先,我想展示所有模型,如:

class ItemAdmin(admin.ModelAdmin):
  pass

admin.site.register(Item, ItemAdmin)
另外,我还需要一个新页面,其中只显示状态为“待定”的模型,如下所示:

class ItemAdminPending(admin.ModelAdmin):
def queryset(self, request):
    qs = super(ItemAdminPending, self).queryset(request)
    return qs.filter(status='pending')

admin.site.register(Item, ItemAdminPending)
但我当然会出错: AlreadyRegistered:模型项已注册


有什么建议吗?希望得到帮助。

非常接近!您需要的是在
模型中添加一个.py

class ItemPending(Item):
    class Meta:
        proxy = True
然后注册第二个
ModelAdmin
,如下所示:

admin.site.register(ItemPending, ItemAdminPending)

也有这个答案,它提供了一个实用的功能,干这样做