使用null条件过滤Queryset

时间:2012-11-15 19:50:57

标签: django django-models

我想过滤今天启用的记录:

today = datetime.today().date()
dataset = Structure.objects.exclude(final_date__lt=today).filter(initial_date__lte=today)

以上代码在初始和最后一天都可以正常工作。

考虑到final_date可以为null,我如何构造过滤器?

或者这个查询有更好的构造吗?

1 个答案:

答案 0 :(得分:2)

如果我理解这一点,您希望过滤final_date值和null。是吗?

您可以使用Q对象进行过滤。

from django.db.models import Q

dataset = Structure.objects.filter(Q(final_date__lt=today) | Q(final_date__isnull=True)).filter(initial_date__lte=today)