具有一些带有字段date
的抽象模型:
class MyModel(models.Model):
date = models.DateField(null=True)
...
如何构成一个过滤查询,该查询返回date
字段为Null
或在给定日期范围内的所有记录?
这是我到目前为止尝试过的,但是我总是得到空的查询集:
_ = MyModel.objects.filter(Q(date__isnull=True) & Q(date__range=[...])
答案 0 :(得分:1)
您需要在此处使用逻辑或,而不是和,因此使用|
代替&
:
MyModel.objects.filter(Q(date__isnull=True) | Q(date__range=[…])
或者您可以简化为:
MyModel.objects.filter(Q(date=None) | Q(date__range=[…])
通过使用逻辑运算符,您要检索MyModel
字段为两者 data
且范围为{{1 }},用于相同记录。没有值是NULL,并且在同一时间范围内。