Django admin list_display属性用法

brs*_*gic 6 python django django-admin

我在下面有模型及其管理代码.问题是如何tag在其list_display财产中展示一本书的前三 部分?我可以在书籍编辑时显示标签,但我想在管理面板中列出该书时使用3个标签.

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
Run Code Online (Sandbox Code Playgroud)

admin.py

class BookTagInline(admin.TabularInline):
    model = JobTitleTag

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

admin.site.register(Book,BookAdmin)
Run Code Online (Sandbox Code Playgroud)

你能给我任何建议吗?谢谢

Dan*_*man 14

在管理类上使用自定义方法.

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

    def three_tags(self, obj):
        return obj.booktag_set.all()[:3]
Run Code Online (Sandbox Code Playgroud)