Получить объекты с датой, превышающей сегодняшнюю или пустую дату

Мне нужно выбрать все объекты модели с полем даты больше текущей даты или поле даты пустым.

У меня есть следующий код:

@login_required
def event_new(request, person_uuid=None):
    today = datetime.datetime.today()
    #valid_until may be empty
    profile = Profile.objects.filter(company=request.user.company, valid_until__gte=today)

Мне нужно выбрать все объекты Profile с полем valid_until пустым или (если установлено) больше, чем сегодня. Как я могу достичь этого?

Ответ 1

Используйте Q.

from django.db.models import Q

@login_required
def event_new(request, person_uuid=None):
    today = datetime.datetime.today()
    #valid_until may be empty
    profile = Profile.objects.filter(company=request.user.company).filter(Q(valid_until__gte=today)|Q(valid_until=None))