假设我有3个模型,后续1对多关系,A(1到多个)B(1到多个)C:
class ModelA(models.Model):
class ModelB(models.Model):
model_a = models.ForeignKey('ModelA', related_name='re_model_b')
class ModelC(models.Model):
model_b = models.ForeignKey('ModelA', related_name='re_model_c')
从我可以使用的ModelA实例开始:
model_a.re_model_b
获取ModelB相关对象。但是从那里我不知道怎么去ModelC。我试过了:
model_a.re_model_b.re_model_c
和
model_a.re_model_b__re_model_c
这两种情况似乎都没有。
答案 0 :(得分:1)
我认为没有办法以你想到的确切形式(model_a.re_model_b.re_model_c
)来做到这一点。由于model_a.re_model_b
返回对象管理器(而不是对象本身),因此不能以相同的方式使用它。例如,obj_a.re_model_b.all()
返回相关ModelB对象的查询集。
相反,做ModelC.objects.filter(model_b__model_a=my_obj_a)
可能更有意义。