2013-07-09 26 views
0

所以我有一些像這樣的代碼:我如何將這些查詢結合在Django中?

objects_list = A.objects.filter(some_param = some_value) 

for obj in objects_list: 
    object = B.objects.get(pk=obj.another_param) 
    #do stuff with the B object 

有什麼辦法給組合成一個查詢或東西嗎?怎麼樣?謝謝!

回答

0

你可以這樣做:

a_qs = A.objects.filter(some_param=some_value).values_list('another_param', flat=True) 
b_qs = B.objects.filter(pk__in=a_qs) 

for b in b_qs: 
    #do stuff with b 

或者,如果您想要合併:

b_qs = B.objects.filter(pk__in=A.objects.filter(some_param=some_value).values_list('another_param', flat=True)) 

for b in b_qs: 
    #do stuff with b 
+0

'__in'就是我一直在尋找!我知道我之前做過這件事,但是我的想法已經消失了。謝謝! –