簡體   English   中英

一個模型django的兩個管理類

[英]two admin classes for one model django

我需要在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)

而且,我想要一個新頁面,其中只顯示status ='pending'的模型,如下所示:

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:模型項已經注冊

有什么建議? 希望得到幫助。

很接近! 你想要的是在models.py添加一個代理模型

class ItemPending(Item):
    class Meta:
        proxy = True

然后像這樣注冊第二個ModelAdmin

admin.site.register(ItemPending, ItemAdminPending)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM