django之在 list_display 中显示内联模型字段

小虾米 阅读:113 2025-06-02 22:19:02 评论:0

我有两个模型:

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 

管理文件
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字段(标题、姓名、电子邮件)。

所以当我访问 Person django admin 中的条目列表,我看到:
person name book name book year book email

请您参考如下方法:

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) 


标签:Django
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

关注我们

一个IT知识分享的公众号