class ModelA(models.Model):
f = models.CharField(max_length=50)
class ModelB(models.Model):
a = ForeignKey(ModelA)
b = models.CharField(max_length=50)
我想在模型A中获得f,我知道b。我怎么能用django orm来做到这一点?
您可以使用以下查询之一:
a_models = ModelA.objects.filter(model_b__b=known_b_value)
for a in a_models:
print(a.f)
b_models = ModelB.objects.filter(b=known_b_value).select_related('a')
for b in b_models:
print(b.a.f)
select_related
在第二个查询中并不是绝对必要的;它仅用于在第一个查询中获取f
值,而不是在每个循环项目中获取一个额外查询。
这是你在找什么?
ModelA.objects.filter(b=value_matching_b).values('a__f').all()