2016-06-15 101 views
1

我有一個來自Picture.objects.filter(user_ID=user)的查詢集。圖片模型具有「contest_ID」作爲外鍵。從查詢集獲取查詢集

我在尋找獲取具有圖片的比賽的查詢集,因此從我已擁有的查詢集中,如何獲取比賽對象列表?

+0

您的模型如何看起來像?什麼是'user_ID'?爲什麼不使用像'qs.filter(user__pk = user.pk)'這樣的便捷方式? – ohrstrom

+0

@manch試試這個:picture_obj.contest_set.all()你會得到與這個圖片對象相關的所有比賽。 –

+0

@AnjaneyuluBatta,這將適用於單個對象,但不適用於查詢集。 –

回答

0

我假設你的模型看起來像這樣

 
class Contest(Model): 
    ... something ... 

class Picture(Model): 
    user = ForeignKey(User) 
    contest = ForeignKey(Contest) 
    ... something ... 

所以,Picture.objects.filter(user=user)特定用戶給你的圖片(沒有指定_id,過濾器上的模式運作的對象就好了)。和特定用戶獲得與圖片比賽,你可以做

 
pics_by_user = Picture.objects.filter(user=user) 
contests_by_user = Contest.objects.filter(id__in=pics_by_user.values_list('contest', flat=True)) 

有可能是一個更簡單的方法,雖然