2015-04-24 5 views
12

Dies ist eine einfache Frage. Ich würde gerne wissen, ob es das gleiche ist, zu schreiben:Django Abfrage __isnull = True oder = Keine

queryset = Model.objects.filter(field=None) 

als:

queryset = Model.objects.filter(field__isnull=True) 

Ich bin mit django 1.8

Antwort

12

Sie sind gleich:

>>> str(Person.objects.filter(age__isnull=True).query) == str(Person.objects.filter(age=None).query) 
True 
>>> print(Person.objects.filter(age=None).query) 
SELECT "person_person"."id", "person_person"."name", "person_person"."yes", "person_person"."age" FROM "person_person" WHERE "person_person"."age" IS NULL 
>>> print(Person.objects.filter(age__isnull=True).query) 
SELECT "person_person"."id", "person_person"."name", "person_person"."yes", "person_person"."age" FROM "person_person" WHERE "person_person"."age" IS NULL 
Verwandte Themen