Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 3.x Django日期过滤器-查找介于两者之间的日期_Python 3.x_Django 2.1 - Fatal编程技术网

Python 3.x Django日期过滤器-查找介于两者之间的日期

Python 3.x Django日期过滤器-查找介于两者之间的日期,python-3.x,django-2.1,Python 3.x,Django 2.1,我试图创建一个查询,如果它在两个日期之间的给定时间段内的任何时间点运行,则返回一个事件 型号: class MyModel(models.Model): start_date = models.DateField(auto_now=False, blank=True, null=True, verbose_name="Start date") hd_end_date = models.DateField(blank=True, default=None, null=True, v

我试图创建一个查询,如果它在两个日期之间的给定时间段内的任何时间点运行,则返回一个事件

型号:

class MyModel(models.Model):
    start_date = models.DateField(auto_now=False, blank=True, null=True, verbose_name="Start date")
    hd_end_date = models.DateField(blank=True, default=None, null=True, verbose_name="End date") 
要尝试和筛选的当前代码:

        import calendar
        max_day = calendar.monthrange(year, month)[1]

        start = "{}-{}-01".format(year, month)
        end = "{}-{}-{}".format(year, month, max_day)

        # If the event starts in the month, or if it ends in the month
        filter.append(Q(start_date__range=[start, end]) |
                      Q(hd_end_date__range=[start, end]))
我的型号有一个
开始日期
和一个
结束日期
(hd\u结束日期)。这种逻辑一开始似乎是按预期的那样起作用的。然而,有问题,我知道是什么,只是不知道如何解决它


例如,如果我的事件模型在12月开始,在2月结束,那么上面的代码将返回12月和2月的事件,但不会返回1月的事件,因为它既不在该月开始也不在该月结束。如何调整此代码,使其返回一个运行数月的事件

看来我想得太多了,通过简化解决了这个问题

filter.append(Q(开始日期月份lte=month,hd\U结束日期月份gte=month))

我意识到我可以只看一个月,而不需要确定日期,因为我只想知道活动在该月的开始日期和结束日期之间进行