django-rest-frameworkで現在時刻を過ぎたものを表示しないようにする方法


過去のものを表示したくないとき

誰にだってそういったものはありますよね。僕も過去はあんまり見たくないです。

かといっていちいちモデルから消してしまうのも手間となってしまうので非表示してしまおうというのが今回やりたいこと。

今回も簡単なのでサクッと

view.py
from datetime import datetime

class EventViewset(viewsets.ModelViewSet):
    queryset = Event.objects.order_by('event_schedule')
    serializer_class = EventSerializer
    # 現在時刻を過ぎたイベントについては表示しない
    # Eventの部分は使用するモデル名
    # event_scheduleの部分はフィルタリングしたいフィールド
    def get_queryset(self):
        return Event.objects.all().filter(event_schedule__gt=datetime.now())

これだけでできます