我有两种模式:
class ModelA(models.Model):
name = models.CharField()
class ModelB(models.Model):
a = models.ForeignKey(ModelA)
value = models.CharField()
ModelB
始终属于ModelA
。我有一个过滤我的ModelB
s:
ModelB.objects.filter(value='foo')
从那个QuerySet
我需要检索匹配的ModelA
集。所以我尝试了这个:
>>> ModelB.objects.filter(value='foo').values('a')
[{'a': 2}, {'a': 4}, {'a': 6}]
但是正如你所看到的那样,我只得到了对象id
。我怎样才能自己获取对象?
答案 0 :(得分:4)
如果你想要ModelAs,你必须要求ModelAs。
ModelA.objects.filter(modelb__value='foo')
答案 1 :(得分:0)
目前我有这个小号码:
model_a_list = ModelB.objects.filter(value='foo').values('a')
ModelA.objects.filter(id__in=model_a_list)
任何更好的方法都会非常感激。