在list_display中显示内联模型字段

时间:2016-03-15 11:40:16

标签: django django-admin

我有两种模式:

class Person(models.Model):
    person_name = models.CharField(max_length=255)

    def __unicode__(self):
        return self.person_name

class Book(models.Model):
    link = models.ForeignKey(Person)
    book_name = models.CharField(max_length=255)
    book_year = models.CharField(max_length=255)
    book_email = models.CharField(max_length=255)

    def __unicode__(self):
        return self.name

admin.py

class PersonAdmin(admin.ModelAdmin):
    inlines = ('BookInline',)
    list_display = ('person_name', ...)

class BookInline(admin.TabularInline):
    model = Book
    extra = 1
    max_num = 1

PersonAdmin list_display中,如何显示内嵌模型Book字段(标题,名称,电子邮件)。

所以当我访问django admin中的Person条目列表时,我看到了:

person name book name book year book email

3 个答案:

答案 0 :(得分:5)

list_display的{​​{1}}用于显示每个人一次。包含书籍模型中的属性并没有多大意义,因为如果他们有多本书,你必须多次包括这个人。

最好不要将这个人的姓名包含在书中PersonAdmin

list_display

答案 1 :(得分:0)

根据doc,您可以使用callable来显示字段。

答案 2 :(得分:0)

[1, 2, 3]

StackedInline将解决您的问题