2013-07-10 11 views
12

Ich muss alle Modellobjekte auswählen, deren Datumsfeld größer ist als das heutige Datum oder das OR-Datumsfeld leer ist.Abrufen von Objekten mit größerem Datum als heute oder leerem Datum

ich folgenden Code haben:

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

Ich brauche alle Profile Objekte mit valid_until Feld leer wählen oder (falls gesetzt), die größer als heute. Wie kann ich das erreichen?

Antwort

13

Verwenden Sie 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)) 
Verwandte Themen