2011-10-06 15 views
6

मेरे पास मॉडल और उनके व्यवस्थापक कोड नीचे दिए गए हैं। सवाल यह है कि मैं अपनी list_display संपत्ति में किसी पुस्तक के पहले तीन tag को कैसे दिखा सकता हूं? पुस्तक संपादित करते समय मैं टैग दिखा सकता हूं लेकिन पुस्तक के व्यवस्थापक पैनल में सूचीबद्ध होने पर मैं इसके 3 टैग चाहूंगा।Django admin list_display संपत्ति का उपयोग

models.py

class Book(models.Model): 
    name = models.CharField(max_length=1000) 

    def __unicode__(self): 
     return self.name 

class BookTag(models.Model): 
    name = models.CharField(max_length=1000) 
    book = models.ForeignKey(Book,null=False,blank=False)  
    def __unicode__(self): 
     return self.name 

admin.py

class BookTagInline(admin.TabularInline): 
    model = JobTitleTag 

class BookAdmin(admin.ModelAdmin): 
    list_display = ('name') 
    inlines = [ BookTagInline, ] 

admin.site.register(Book,BookAdmin) 

तुम मुझे कोई सुझाव दे सकते हैं? धन्यवाद

उत्तर

14

व्यवस्थापक वर्ग पर एक कस्टम विधि का उपयोग करें।

class BookAdmin(admin.ModelAdmin): 
    list_display = ('name', 'three_tags') 

    def three_tags(self, obj): 
     return obj.booktag_set.all()[:3] 
+0

एक आकर्षण की तरह काम करता है। धन्यवाद – brsbilgic