2016-03-31 12 views
0

私は3つの予定されているイベントを日付と時刻でソートしようとしています。 私はどのように私は時間によってイベントを並べ替えるでしょうdjango時間で並べ替え

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

関連性はありませんが、 '__gte = today'と' __lte = today'はどうしますか? –

+1

上記のコードで何が問題になっていますか? 'order_by( ' - start')'は順序付けのためにうまく動作するはずです – v1k45

+0

あなたのイベントモデルを質問に貼り付けて、より良い解決策を与えるべきでしょう。 –

答えて

0

複数の列で注文することができます。ここを参照してください:https://docs.djangoproject.com/en/1.9/ref/models/querysets/#order-by

order_by(*fields)¶ 

デフォルトでは、クエリセットで返される結果は、モデルのメタにおける発注オプションによって与えられた順序タプルによって順序付けされています。これは、order_byメソッドを使用してQuerySetごとにオーバーライドすることができます。

例:

Entry.objects.filter(pub_date__year=2005).order_by('-pub_date', 'headline') 

上記の結果は、次に見出し上昇により、PUB_DATE降順で順序付けされるであろう。 「-pub_date」の前にあるマイナス記号は降順を示します。昇順が暗示されています。

関連する問題