我试图按日期和时间排序3个即将举行的活动。 我能够使用
对日期进行排序def get_upcoming_events(self):
today=date.today()
return Event.objects.filter(Q(start__gte=today) | Q(end__lte=today)).order_by('-start')[:3]
我如何按时间对事件进行排序?我读了一些关于使用lastest()的内容,但我不确定是否需要声明另一个字段来存储时间。
答案 0 :(得分:0)
您可以按多列排序。见这里:https://docs.djangoproject.com/en/1.9/ref/models/querysets/#order-by
order_by(*fields)¶
默认情况下,QuerySet返回的结果按模型Meta中的排序选项给出的排序元组排序。您可以使用order_by方法在每个QuerySet的基础上覆盖它。
示例:
Entry.objects.filter(pub_date__year=2005).order_by('-pub_date', 'headline')
上面的结果将按pub_date降序排序,然后按标题升序排序。 “-pub_date”前面的负号表示降序。升序是隐含的。