Каждое ваше необходимое условие представляет набор запросов.
Вопросы, оставшиеся без ответа и опубликованные за последние "X" минут:
unanswered_questions = Question.objects.filter(timestamp__gte=(now()-time(min=5))).annotate(answers_count=Count('Answer')).filter(answers_count=0)
и аналогично.
Похоже, вы хотите отобразить комбинацию из нескольких наборов запросов. Для этого вы можете использовать метод itertools.chain
, чтобы объединить и отобразить результат нескольких наборов запросов в вашем шаблоне, например:
combined_queryset = chain(recent_questions,unanswered_questions,...)
Имейте в виду, однако, что если в этих наборах запросов есть перекрывающиеся условия, некоторые вопросы могут повторяться. Вы можете избежать этого, явно преобразовав результат одного набора запросов в следующие, или вы можете преобразовать набор запросов в список и позволить типу set.union
позаботиться о возможных дубликатах.