使用values / values_list通过反向ForeignKey获取主键列表

时间:2013-07-17 10:06:29

标签: django django-models

我优化了一些查询,只使用values_list返回我们需要的信息,而不是从数据库中加载整个对象。

对于每个对象,我需要访问其子集以获取一些信息。

我的代码结构类似于:

class MyObj(models.Model):
    field_a = models.Integer()

class Child(models.Model):
    parent = models.ForeignKey(MyObj, related_name='children')
    field_b = models.Integer()

对于每个MyObj,我希望尽可能高效地为其所有孩子访问field_b的值。

我希望像models.MyObj.values_list('children__field_b')这样的查询会返回我想要的值列表,但它只会返回一个值。

是否可以获取我使用values_list描述的字段的值列表?

如果没有,那么迭代每个MyObj及其子项的最高效方法是什么?

1 个答案:

答案 0 :(得分:0)

foo = MyObject.objects.get(pk=1)
foo.child_set.values_list('field_b')