有一些带有字段日期
的抽象模型:
class MyModel(models.Model):
date = models.DateField(null=True)
...
如何编写一个过滤器查询来返回 date
字段为 Null
或在给定日期范围内的所有记录?
这是我到目前为止所尝试过的,但我总是得到空查询集:
_ = MyModel.objects.filter(Q(date__isnull=True) & Q(date__range=[...])
最佳答案
这里需要使用逻辑或,而不是和,因此使用|
而不是&
:
MyModel.objects.filter(Q(date__isnull=True) <b>|</b> Q(date__range=[…])
或者您可以将其简化为:
MyModel.objects.filter(Q(<b>date=None</b>) <b>|</b> Q(date__range=[…])
通过使用逻辑与,您想要检索 MyModel
,其中 data
字段为 both NULL
且在 …
范围内(对于相同记录)。没有值同时为 NULL 和范围内的值。
关于python - 按具有多个选项的字段过滤查询集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58804743/