我是Django的新手,这个问题可能看起来很愚蠢。为什么要使用Django自我引用的外键关系?什么时候?
例如,
class Person(models.Model):
follower = models.ForeignKey('Person')
为什么在这里使用自引用?
答案 0 :(得分:1)
您提供的示例允许您表示一个人(例如Alice)有一个朋友(例如Bob)。如果你想让人们有多个朋友,你可能更喜欢多对多的领域。
对于递归关系,可以使用'self'
friend = models.ForeignKey('self')
或明确命名模型
friend = models.ForeignKey('Person')
使用哪个并不重要。就个人而言,我更喜欢'self',因为它显然外键是递归的。