我优化了一些查询,只使用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
及其子项的最高效方法是什么?
答案 0 :(得分:0)
foo = MyObject.objects.get(pk=1)
foo.child_set.values_list('field_b')