过滤问题在过去24小时内收到最多答案

时间:2017-09-24 09:11:37

标签: python django

这是模型,

class Question(models.Model):
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)
    ....

class Answer(models.Model):
    question = models.ForeignKey(Question)
    timestamp = models.DateTimeField(auto_now=False, auto_now_add=True)

如何过滤掉过去24小时内收到最大答案的问题。我怎么能过滤掉它们呢?

请帮帮我。谢谢!

2 个答案:

答案 0 :(得分:0)

要使用比某个日期更近的答案过滤问题,您可以执行以下操作:

Question.objects.select_related().filter(
    answer__timestamp__gt=<datetime obj 24h ago>)

答案 1 :(得分:0)

count_subquery = Answer.object.filter(question=OuterRef('pk'), timestamp__gt=<queried_datetime>).values('question').annotate(c=Count('*').values('c'))
Question.objects.annotate(answer_count=Subquery(count_subquery)).order_by('answer_count')