django按时间排序

时间:2016-03-31 19:25:35

标签: python django sorting

我试图按日期和时间排序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()的内容,但我不确定是否需要声明另一个字段来存储时间。

1 个答案:

答案 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”前面的负号表示降序。升序是隐含的。