在过滤器的“模型”字段中按间隔增加日期的月份

时间:2018-11-19 10:38:19

标签: python django django-views

我正在得到这样的物体。 date_from,date_to是输入变量

result = Records.objects.filter(recorddate__range=(date_from, date_to))

还有另一个整数变量off_set。我如何在这样的过滤器中使用它 因此,recorddate字段的月份会增加偏移量数字。喜欢

result = Records.objects.filter((recorddate+off_set)__range=(date_from, date_to))

1 个答案:

答案 0 :(得分:0)

如评论中所述,您可以从范围中减去偏移量以过滤相关记录。

由于月份的天数不同(Python的timedelta不支持月份),因此创建偏移量可能会有些棘手。

为此,您可以考虑使用dateutil.relativedelta(),尽管这需要单独的pip install python-dateutil。您还需要确保date_fromdate_to尚未转换为datetime对象。例如:

from dateutil.relativedelta import relativedelta

months = relativedelta(months=off_set)
result = Records.objects.filter(recorddate__range=(date_from - months, date_to - months))