Search code examples
pythonsqldjangodjango-querysetdjango-orm

How to perform OR condition in django queryset?


I want to write a Django query equivalent to this SQL query:

SELECT * from user where income >= 5000 or income is NULL.

How to construct the Django queryset filter?

User.objects.filter(income__gte=5000, income=0)

This doesn't work, because it ANDs the filters. I want to OR the filters to get union of individual querysets.


Solution

  • from django.db.models import Q
    User.objects.filter(Q(income__gte=5000) | Q(income__isnull=True))
    

    via Documentation