2013-07-17 70 views
0

我正在優化一些查詢,僅使用values_list返回我們需要的信息,而不是從數據庫加載整個對象。使用值/ values_list通過反向ForeignKey獲取主鍵列表

對於每個對象,我需要訪問它的子集的一些信息。

我的代碼的結構與此類似:

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
foo = MyObject.objects.get(pk=1) 
foo.child_set.values_list('field_b')