我有一个来自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,这将适用于单个对象,但不适用于查询集。 –