DJANGO:如何list_display反向外键属性?

the*_*eld 7 python django admin foreign-keys reverse-lookup

我正在构建一个Web应用程序来跟踪一个人检查的图书馆书籍.我有以下型号:

class Person(models.Model):
    name = models.CharField(max_length=100)
    def __unicode__(self):
         return self.name

class Book(models.Model):
    name = models.CharField(max_length=100)
    person = models.ForeignKey(Person)
    checkout_date = models.DateTimeField('checkout date')
    def __unicode__(self):
        return self.name
Run Code Online (Sandbox Code Playgroud)

在管理员的"人员更改列表"页面上,我想展示该人拥有的书籍.这是可以做到的吗?如果是这样,怎么样?

admin.py

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

class PersonAdmin(admin.ModelAdmin):
    list_display = ('name', 'book__name')
Run Code Online (Sandbox Code Playgroud)

luc*_*mia 16

Django管理员非常灵活,你可以简单地为它添加一个帮助方法.

class PersonAdmin(admin.ModelAdmin):
    list_display = ('name', 'books')

    def books(self, obj):
        return ",".join([k.name for k in obj.book_set.all()])
Run Code Online (Sandbox Code Playgroud)


Jef*_*_Hd 5

添加内联模型管理员

class BookInline(admin.TabularInline):
    model = book

class PersonAdmin(admin.ModelAdmin):
    inlines = [BookInline, ]
Run Code Online (Sandbox Code Playgroud)

那应该涵盖它。