2011-10-06 166 views
6

我在下面有模型和他們的管理代碼。問題是如何在list_display屬性中顯示書籍的前三個tag? 我可以在書籍正在編輯時顯示標籤,但我希望在管理面板中列出書籍時顯示其3個標籤。Django admin list_display property usage

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

在admin類上使用自定義方法。

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

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

工程就像一個魅力。謝謝 – brsbilgic