2013-07-10 19 views
12

Należy wybrać wszystkie obiekty modelu z polem daty większym niż dzisiejsza data LUB pole daty puste.Pobierz obiekty z datą większą niż dzisiaj lub pustą datą.

Mam następujący kod:

@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) 

muszę zaznaczyć wszystkie obiekty profilu z pola valid_until pusta lub (jeśli jest ustawione) większa niż dzisiaj. Jak mogę to osiągnąć?

Odpowiedz

13

Użyj 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))