Я пытаюсь выполнить аналог «группы по», чтобы получить список всех предположений владельца викторины » s викторины, сгруппированные по пользователям и снабженные аннотациями с указанием количества предположений, сделанных пользователем.
Соответствующие модели:
class Quiz(models.Model):
user = models.ForeignKey(User)
...
class Guess(models.Model):
user = models.ForeignKey(User)
quiz = models.ForegnKey(Quiz)
...
Этот запрос:
guessors = Guess.objects.filter(quiz__user=request.user).values('user').annotate(cnt=Count('user')).order_by('cnt')
Возвращает что-то вроде этого, что очень близко к тому, что мне нужно:
{'cnt': 5, 'user': 5}
{'cnt': 3, 'user': 4}
{'cnt': 2, 'user': 3}
{'cnt': 1, 'user': 2}
Обратите внимание, однако, что 'user' возвращается как int, когда мне нужен полный объект User. Есть какие-нибудь предложения относительно того, как мне наиболее эффективно получить полный объект User?