Django在orm中过滤日期范围列表

时间:2018-03-18 03:26:31

标签: python django orm

在django orm中有没有办法过滤日期范围数组?

示例:

date_ranges = [["2011-01-01", "2011-01-31"],["2011-02-01", "2011-02-31"]]
Sample.objects.filter(date__range__in=date_ranges)

1 个答案:

答案 0 :(得分:1)

您可以在OR中循环后使用date_ranges查询,如下所示。

 from django.db.models import Q

 query = ""

 for val in date_ranges:
      if (query == ""):
          query = Q(date__range=val)
      else:
          query = query + "|" + Q(date__range=val)

现在使用此查询形成查询以进行过滤。

 User.objects.filter(query)