【发布时间】:2021-03-17 17:49:38
【问题描述】:
我正在尝试在 Django 中创建两个模型,“段落”和“句子”。我似乎仍然不明白多对一功能是如何工作的。如果我希望有一个包含多个句子的段落;我是否只需将 ForeignKey(Paragraph) 添加到 Sentences 模型中?这样我就可以在 Paragraph 模型中存储多个句子。 感谢您在我尝试学习 Django 时提供的任何见解。
class Sentence(models.Model):
text = models.TextField(blank=True)
order_number = models.IntegerField()
def __str__(self):
return self.text
class Paragraph(models.Model):
text = models.TextField(blank=True)
order_number = models.IntegerField()
sentences = models.ForeignKey(Sentence, on_delete=models.CASCADE)
def __str__(self):
return self.text
【问题讨论】:
-
请展示你的模特
-
是的,你在正确的轨道上。一个段落可以有多个句子,但一个句子只能有一个段落。因此,句子的段落有一个外键。您可以通过执行
Para.sentence_set.all()来检索段落的句子,其中Para是段落对象。
标签: django django-models foreign-keys one-to-many many-to-one