2014-04-03 7 views
5

के लिए दो व्यवस्थापक वर्ग मुझे 2 व्यवस्थापक वर्गों के संदर्भ में एक मॉडल का उपयोग करने की आवश्यकता है। तो, यह मेरा मॉडल है:एक मॉडल django

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) 

लेकिन निश्चित रूप से मुझे एक त्रुटि मिलती है: पहले से ही पंजीकृत: मॉडल आइटम पहले ही पंजीकृत है

कोई सुझाव? मदद पाने की उम्मीद है।

उत्तर

5

बहुत करीब! क्या आप चाहते हैं कि आपके models.py में एक proxy model जोड़ने के लिए है:

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

और फिर दूसरा ModelAdmin तो जैसे पंजीकृत:

admin.site.register(ItemPending, ItemAdminPending)