何时使用Django Self Referential Foreign Key以及为什么?

时间:2015-09-29 15:55:54

标签: django

我是Django的新手,这个问题可能看起来很愚蠢。为什么要使用Django自我引用的外键关系?什么时候?

例如,

class Person(models.Model):
      follower = models.ForeignKey('Person')

为什么在这里使用自引用?

1 个答案:

答案 0 :(得分:1)

您提供的示例允许您表示一个人(例如Alice)有一个朋友(例如Bob)。如果你想让人们有多个朋友,你可能更喜欢多对多的领域。

对于递归关系,可以使用'self'

  friend = models.ForeignKey('self')

或明确命名模型

  friend = models.ForeignKey('Person')

使用哪个并不重要。就个人而言,我更喜欢'self',因为它显然外键是递归的。