2013-08-27 74 views
0

我有兩個模型,Story和FollowUp。 FollowUp可以擁有Story的外鍵。故事有一個用戶的外鍵。從查詢集獲取所有外鍵

我可以通過user.story_set.all()獲取與用戶關聯的所有Story。我希望在不迭代查詢集的情況下,能夠獲得與所有Storys相關的所有FollowUps。

我最初嘗試過user.story_set.all()。followup_set.all(),但那不起作用。

我該如何做到這一點?

回答

0

更簡單的方法是使用prefetch_related預加載的所有對象,然後只需迭代:

followups = [] 
for story in user.story_set.all().prefetch_related(): 
    followups.extend(story.followup_set.all()) 

或者,你可以這樣做:

followups = Followup.objects.filter(story__in = user.story_set.all()) 

(代碼的第二部分可能需要一個列表壓縮使用ID而不是對象,但你明白了)

0

更簡潔的方法是:

FollowUp.objects.filter(story__user=user)