如何在django中操作

问题描述 投票:0回答:2
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来做到这一点?

python django django-models orm django-orm
2个回答
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值,而不是在每个循环项目中获取一个额外查询。


0
投票

这是你在找什么?

ModelA.objects.filter(b=value_matching_b).values('a__f').all()
© www.soinside.com 2019 - 2024. All rights reserved.