0

我有两个模型:

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}]

但正如你所看到的,这只让我得到了 object ids。我怎样才能自己获取对象?

4

2 回答 2

4

如果你想要 ModelAs,你必须要 ModelAs。

ModelA.objects.filter(modelb__value='foo')
于 2012-06-05T20:38:16.243 回答
0

目前我有这个小数字:

model_a_list = ModelB.objects.filter(value='foo').values('a')
ModelA.objects.filter(id__in=model_a_list)

任何更好的方法来做到这一点将不胜感激。

于 2012-06-05T20:39:44.233 回答