[英]django queryset sorting by fields
i have this model:我有这个 model:
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)
I want to write a query for get users who solve more questions(have more accept=True) and those who are equal are sorted by time(time field) Thanks我想写一个查询来获取解决更多问题的用户(有更多的接受=真)和那些相等的按时间排序(时间字段)谢谢
Try尝试
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'
)
Doc: Aggregation functions , Filtering on annotations文档: 聚合函数, 过滤注释
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.