Django admin list_display属性使用方法
我有一些模型和它们的管理代码在下面。我的问题是,如何在书籍的 list_display
属性中显示前三个 tag
呢?我可以在编辑书籍时显示标签,但我希望在管理面板中列出书籍时也能显示它的三个标签。
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)
你能给我一些建议吗?谢谢!
1 个回答
16
在管理员类上使用一个自定义的方法。
class BookAdmin(admin.ModelAdmin):
list_display = ('name', 'three_tags')
def three_tags(self, obj):
return obj.booktag_set.all()[:3]