我有一個來自Picture.objects.filter(user_ID=user)
的查詢集。圖片模型具有「contest_ID」作爲外鍵。從查詢集獲取查詢集
我在尋找獲取具有圖片的比賽的查詢集,因此從我已擁有的查詢集中,如何獲取比賽對象列表?
我有一個來自Picture.objects.filter(user_ID=user)
的查詢集。圖片模型具有「contest_ID」作爲外鍵。從查詢集獲取查詢集
我在尋找獲取具有圖片的比賽的查詢集,因此從我已擁有的查詢集中,如何獲取比賽對象列表?
你只需要按照reverse relations。
user_contests = Contest.objects.filter(picture__user=user)
我假設你的模型看起來像這樣
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))
有可能是一個更簡單的方法,雖然
您的模型如何看起來像?什麼是'user_ID'?爲什麼不使用像'qs.filter(user__pk = user.pk)'這樣的便捷方式? – ohrstrom
@manch試試這個:picture_obj.contest_set.all()你會得到與這個圖片對象相關的所有比賽。 –
@AnjaneyuluBatta,這將適用於單個對象,但不適用於查詢集。 –