在list_display中显示内联模型字段

Ahm*_*hbi 3 django django-admin

我有两个模型:

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

    def __unicode__(self):
        return self.person_name
Run Code Online (Sandbox Code Playgroud)

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

管理员

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

class BookInline(admin.TabularInline):
    model = Book
    extra = 1
    max_num = 1
Run Code Online (Sandbox Code Playgroud)

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

因此,当我访问Persondjango admin中的条目列表时,我看到:

person name book name book year book email

Ala*_*air 5

list_displayPersonAdmin是为了显示每个人一次。从书本模型中包含属性实际上没有任何意义,因为如果他们有一本书以上,那么您将不得不多次包含该人。

在书的名字​​上包含这个人的名字不是更好list_display吗?

class BookAdmin(admin.ModelAdmin):
    inlines = ('BookInline',)
    list_display = ('person_name', 'book_name', 'book_email', 'book_year')

    def person_name(self, obj):
        returns obj.link.person_name

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