[英]Filter queryset by field with multiple options
有一些带有字段date
的抽象 model :
class MyModel(models.Model):
date = models.DateField(null=True)
...
如何编写一个过滤器查询,返回date
字段为Null
或在给定日期范围内的所有记录?
这是我迄今为止尝试过的,但我总是得到空的查询集:
_ = MyModel.objects.filter(Q(date__isnull=True) & Q(date__range=[...])
您需要在此处使用逻辑或,而不是and ,因此使用|
而不是&
:
MyModel.objects.filter(Q(date__isnull=True) | Q(date__range=[…])
或者您可以将其简化为:
MyModel.objects.filter(Q(date=None) | Q(date__range=[…])
通过使用逻辑与,您希望检索MyModel
,其中data
字段为NULL NULL
在同一记录的范围内…
没有值是 NULL 并且同时在范围内。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.