Follow

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use
Contact

Django filter using DateTimeField that can be null

I want to filter a table objects using a DateTimeField => last_user_action_time, this field can be null so I need the cases where its null to be included in the result.

Here is what I tried:

notification_objects = SinglePushNotification.objects.filter(
            last_user_action_time__lte=day_start,
            last_user_action_time__isnull=True,
        ).select_related("customer")

This return an empty querySet knowing there is objects where null=True

MEDevel.com: Open-source for Healthcare and Education

Collecting and validating open-source software for healthcare, education, enterprise, development, medical imaging, medical records, and digital pathology.

Visit Medevel

>Solution :

Sounds like you need to use an or query, in your attempt you are checking that both conditions are true: field is null and date is less than start (impossible case).

Try an or like so:

from django.db.models import Q

notification_objects = SinglePushNotification.objects.filter(
            Q(last_user_action_time__lte=day_start) |
            Q(last_user_action_time__isnull=True)
        ).select_related("customer")
Add a comment

Leave a Reply

Keep Up to Date with the Most Important News

By pressing the Subscribe button, you confirm that you have read and are agreeing to our Privacy Policy and Terms of Use

Discover more from Dev solutions

Subscribe now to keep reading and get access to the full archive.

Continue reading