Django中使用可为空DateTimeField过滤的异常问题
问题解决:过滤包含null值的DateTimeField记录
你当前的查询逻辑有问题:两个过滤条件是AND关系,要求last_user_action_time同时满足「小于等于day_start」和「为null」,这显然不可能同时成立,所以返回空查询集。
要实现「包含字段为null的记录,同时包含字段值小于等于day_start的记录」,需要用Django的Q对象实现OR逻辑,代码如下:
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")
Q对象通过|符号连接两个条件,代表逻辑或,这样查询就会匹配两种情况的记录:要么last_user_action_time为null,要么其值小于等于day_start。
内容的提问来源于stack exchange,提问作者B. Mohammad
相关产品推荐
相关产品推荐

