Django queryset сортировка по полям

у меня есть эта модель:

class ProgrammingQuestionAnswer(models.Model):
    programming_question = models.ForeignKey(ProgrammingQuestion, on_delete=models.CASCADE, related_name='programming_question_a', null=True, blank=True)
    time = models.DateTimeField(default=timezone.now)
    score = models.IntegerField(null=True, blank=True, default=0)
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='writer_answer_programming_question', null=True, blank=True)
    accept = models.BooleanField(default=False)
    file = models.FileField(upload_to=content_file_name)
    result = models.TextField(null=True, blank=True)
    file_name = models.CharField(max_length=500, null=True, blank=True)
    max_score = models.IntegerField(null=True, blank=True, default=0)

Я хочу написать запрос для получения пользователей, которые решили больше вопросов (имеют больше accept=True) и те, которые равны, сортируются по времени (поле времени). Спасибо

Попробовать

accepted = Q( 'writer_answer_programming_question__accept=True')

User.objects.all.annotate(
    accepted_count = Count('writer_answer_programming_question', filter = accepted    
    ).order_by('accepted_count', 'time'
    )
    

Док: Функции агрегирования, Фильтрация по аннотациям

Вернуться на верх