如何通过Django管理员中的外键链创建内联?

时间:2018-01-12 12:18:54

标签: python django

假设我有这些Django模型:

class Genre(models.Model):
    name = models.CharField(max_length=255)

class Author(models.Model):
    name = models.CharField(max_length=255)
    genre = models.ForeignKey('Genre')

class Book(models.Model):
    name = models.CharField(max_length=255)
    author = models.ForeignKey('Author')

我想在Django Admin中为一个显示所有相关书籍的Genre实例定义内联。我该怎么办?

我试过这种方式:

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

class GenreAdmin(admin.ModelAdmin):
    inlines = [BookInline]

admin.site.register(Genre, GenreAdmin)

这给我带来了错误:

ValueError: 'Book' has no ForeignKey to 'Genre'

如何正确定义内联?

1 个答案:

答案 0 :(得分:0)

你应该把Genre放在书上,然后在作者上创建一个方法,列出书中的类型,所以基本上是作者类型将从书中填充。