繁体   English   中英

使用多个选项按字段过滤查询集

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM