gpt4 book ai didi

django - 多个模型之间的ManyToManyField关系

转载 作者:行者123 更新时间:2023-12-04 02:04:28 25 4
gpt4 key购买 nike

我有以下代表书籍和作者的模型。一本书可以有多位作者,而一位作者可以写多本书。因此,我正在使用Django的ManyToManyField类型将两个模型相互链接。

我可以使用Django Admin添加Book,并在此过程中创建Author。但是,当我查看刚刚创建的Author时,它没有链接到Book。我必须显式设置Author实例和Book实例之间的反向关系。

就是这样吗,还是我可以做些不同的事情?

型号

class Book(models.Model):    
book_title = models.CharField(max_length=255, blank=False)
authors = models.ManyToManyField('Author', blank=True)

class Author(models.Model):
author_first_name = models.CharField(max_length=255, blank=False)
author_last_name = models.CharField(max_length=255, blank=False)
books = models.ManyToManyField(Book, blank=True)

最佳答案

您不需要两个ManyToManyField定义,因为没有ManyToManyField的模型类通过反向关系与另一个相关。另请:https://docs.djangoproject.com/en/dev/topics/db/queries/#many-to-many-relationships

如果您将两个模型类定义为:

class Book(models.Model):    
book_title = models.CharField(max_length=255, blank=False)
authors = models.ManyToManyField('Author', blank=True)

class Author(models.Model):
author_first_name = models.CharField(max_length=255, blank=False)
author_last_name = models.CharField(max_length=255, blank=False)

那么对于任何 Author实例 aa.book_set.all()都由作者撰写(或合着)的书组成。

关于django - 多个模型之间的ManyToManyField关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7561276/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com