所以这是我在我的一个模特中的一个领域:
year = models.ForeignKey(Year, blank=True, null=True)
现在,我想获取该year
字段为null
或specific_year
的模型的所有对象。
这就是我的尝试:
MyModel.objects.filter(year__isnull=True, year=specific_year)
MyModel.objects.filter(year__isnull=True).filter(year=specific_year)
MyModel.objects.filter(year__in=[specific_year, None])
但他们都给我一个空洞的结果。
我是Django的新手,所以也许我在这里缺少一些东西,但我在文档中找不到答案。那么如何过滤year
字段为null
或specific_year
的所有对象?
答案 0 :(得分:2)
您可以使用Q
objects for complex filtering
from django.db.models import Q
MyModel.objects.filter(Q(year__isnull=True) | Q(year=specific_year))
默认情况下,使用,
或嵌套过滤会产生AND
结果,而您需要OR
结果,您可以使用Q