Запрос найти максимум в django - PullRequest
0 голосов
/ 20 марта 2020

Мне нужно найти максимальный балл идентификатора пользователя с максимальным баллом в категории.

Моя модель:

class QuizCat(models.Model):

    cid = models.IntegerField(unique=True)
    c_name = models.CharField(max_length=200)


class Quiz(models.Model):

    Qid = models.IntegerField()
    cat_id = models.ForeignKey(QuizCat, on_delete=models.CASCADE)
    name = models.CharField(max_length=200)


class UserDetails(models.Model):

    user_id = models.IntegerField()
    Qid = models.ForeignKey(Quiz, on_delete=models.CASCADE)
    score = models.IntegerField()

Я пытался:

    category_id = request.GET.get('category_id')
    result = UserDetails.objects.all().values('user_id').annotate(score=Sum('score')).filter(Qid__cat_id=category_id)

Но выше не сработало.

1 Ответ

0 голосов
/ 20 марта 2020

Вместо суммы используйте Max:

result = UserDetails.objects.filter(Qid__cat_id=category_id).values('user_id').annotate(score=Max('score'))
...