Вам необходимо JOIN
целевую таблицу (User
в вашем случае) несколько раз (для каждого отдельного пользователя), чтобы построить такой запрос.
Чтобы сделать это в Django, нужно позвонить .filter
несколько раз.
users = [user1, user2] # a list of users your are interested to filter on
initial_qs = Results.objects.all() # or whatever your results_query_set is
result_qs = reduce(lambda qs, user: qs.filter(users=user.id), users, initial_qs)
# At this point you will have results containing user1 and user2
# but this also includes results with more users (e.g. users 1, 2 and 3)
# if you want to exclude those, you need to filter by the total users count too
result_qs = result_qs.annotate(cnt=models.Count('users')).filter(cnt=len(users))