如何在admin表单中将几本书添加到书店

2024-06-06 15:31:57 发布

您现在位置:Python中文网/ 问答频道 /正文

在django,假设我有一个模型书店和一个模型书,它有一个书店模型的外键。在django管理上,我添加了10本书,在书店上,我想分配多本书给这个书店。我该怎么做?因为即使有外键,在编辑书店的时候,我也只能选一本书

class BookStore(models.Model):
    name = models.CharField(max_length=100)

class Book(models.Model):
    name = models.CharField(max_length=100)
    store = models.ForeignKey(BookStore, null=True)

Tags: djangostorename模型编辑modelmodelslength
1条回答
网友
1楼 · 发布于 2024-06-06 15:31:57

你们的关系走错了方向。如果你的书店有一本书的fk,你是说“每家书店只能存储一本书”。相反,你应该有一个从书到书店的fk。这是说“一本书属于一家书店(而且只有一家书店)”

class Book:
    bookstore = models.ForeignKey("Bookstore")

class Bookstore:
    ...

如果要在编辑书店对象时添加多本书,则需要使用inline form

class BookInline(admin.StackedInline):
    model = Book

class BookstoreAdmin(admin.ModelAdmin): 
    model = Bookstore
    inlines = [BookInline,]

相关问题 更多 >