如何将Django模型字段链接到同一模型的实例

4

我正在尝试设计一个Django模型,用于文章,其中包括标题、发布日期等属性。其中一个属性是文章评论的其他文章。由于没有外键参与,我不确定如何编写代码 - 我只想引用Article模型的其他实例(即一个或多个其他文章)。目前为止,这是我的代码:

class Article(models.Model):
    title = models.CharField(max_length=400)
    publication_date = date_published = models.DateField()
    comment_on = ?????????????

任何建议都将不胜感激。谢谢!
2个回答

3

我认为你应该使用ForeignKey

 comment_on = models.ForeignKey('self',null=True,blank=True)

要创建一个递归关系——即对象与自身具有多对一的关系——请使用 models.ForeignKey('self')。 Django 外键文档

成功了!谢谢你!我现在会去学习递归关系...再次感谢! - henrich
实际上,这段代码似乎只允许我链接到一篇文章。但有时一篇文章会评论两篇或更多的文章。我尝试使用相同的代码创建额外的字段(即comment_on1、comment_on2等),但Django不允许这样做。有没有什么解决方法? - henrich

2
你可以使用 ManyToManyField
comment_on = models.ManyToManyField('self',null=True,blank=True)

请参考文档以了解更多关于对称使用的内容。

非常感谢!我会这样做的。 - henrich

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接