首页 > 解决方案 > 如何将模型 X 与模型 X 的实例相关联?

问题描述

假设我有

class modelX(models.Model):
    value = models.CharField(max_length=200)
    

现在

var1 = modelX(value='some_value')
var2 = modelX(value='another_value')

如何连接 var1 和 var2 ?

我知道 .objects.all 方法,但这不是我想要的。我想要一个链接列表之类的东西。

标签: pythondjangodjango-modelsbackend

解决方案


创建一个自引用外键。

class modelX(models.Model):
    value = models.CharField(max_length=200)
    parent = models.ForeignKey("self")

因此您可以使用父子关系连接来自同一模型的两个对象

var1 = modelX(value='some_value')
var2 = modelX(value='another_value', parent=var1)

print(var2.parent.value)
>>> "some_value"

推荐阅读