我正在优化一些查询以仅返回我们需要使用的信息,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()
对于 each MyObj
,我想field_b
尽可能有效地访问其所有孩子的值。
我希望这样的查询models.MyObj.values_list('children__field_b')
会返回我想要的值的列表,但它只返回一个值。
是否可以像我描述的那样获取字段的值列表values_list
?
如果不是,那么迭代每个MyObj
及其子项的最高效方式是什么?