2016-06-15 66 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)) 

有可能是一个更简单的方法,虽然