update queryset query objects expressions and django django-models django-queryset

queryset - Django Query__isnull=True o=None



models objects filter (2)

Esta es una pregunta simple. Me gustaría saber si es lo mismo escribir:

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

que:

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

Estoy usando django 1.8


Solo para tener en cuenta que no puede revertir la condición con su primera solución:

# YOU CANNOT DO THIS queryset = Model.objects.filter(field!=None)

Sin embargo puedes hacer esto:

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


Son iguales:

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