gpt4 book ai didi

Django:ForeignKey 和 ManyToManyField 之间的区别

转载 作者:行者123 更新时间:2023-12-01 11:24:56 24 4
gpt4 key购买 nike

我似乎对 Django 的 ForeignKey 和 ManyToManyField 感到困惑。假设我有以下两个模型:

class Author(models.Model):
name = models.CharField(...)

class Paper(models.Model):
title = models.CharField(...)

一篇论文可能有多个作者。我可以执行以下任一操作:

a) 在 authors 中添加一个 Paper 字段,并将作者添加到 Paper 实例中:
    authors = models.ManyToManyFields(Author)

b) 或者,我可以创建另一个包含论文作者的模型:
class PaperAuthor(models.Model):
paper = models.ForeignKey(Paper)
author = models.ForeignKey(Author)

以上两个哪个是正确的?

最佳答案

这些是完全等效的。 ManyToManyField 会自动为您创建“直通”表;唯一的区别是它使您能够使用单个表达式访问一篇论文的所有作者,或一位作者的所有论文。

关于Django:ForeignKey 和 ManyToManyField 之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38172004/

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