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做到这一点?
答案 0 :(得分:0)
您可以使用以下查询之一:
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
值,而不是在每个循环项中获取一个附加查询。
答案 1 :(得分:0)
这是您要寻找的吗?
ModelA.objects.filter(b=value_matching_b).values('a__f').all()