Filter for Empty or Null Values in Django
Django features a great many methods or custom methods, functions to simplify the most complicated tasks so that developers 🙈 can focus on writing applications that work instead of creating methods.
In the recent back, I came across fetching the null and empty value or both from the Django model so the tutorial is all about this only.
We already know that using
exclude() we can retrieve modified Queryset.
Filtering Null Fields
We can use potential field lookup that can be used with
exclude() where the choice should be
Let's suppose we want to retrieve all the
Lead() where the lead is not assigned to anyone.
>> Lead.objects.filter(assigned_to__isnull=True).count() 17
You see, how quickly we determined that 17 leads are not assigned to anyone.
Filtering Empty Fields
Filtering empty fields means, the field not null but the value is empty otherwise. We can use
exact() field lookup.
Let's suppose we want to retrieve the name of Lead with an empty description or email.
>> Lead.objects.filter(lead_description__exact='').count() 10
We quickly retrieved that 10 fields have no description.
Combining Both filters
One final example is that it is possible to combine multiple field lookups by chaining together
Here in this, we are going to fetch a number of fields with empty descriptions and not assigned to anyone.
>> Lead.objects.exclude(assigned_to__isnull=True).exclude(lead_description__exact='').count() 5
There we have it. Simple and pure uses of
exclude() to retrieve (or ignore) or both values in Django QuerySets.
If you have anything in mind, please let me know in the comment.