2011-10-06 139 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