首页 > 解决方案 > 在过滤器中的模型字段中按间隔增加日期的月份

问题描述

我得到这样的对象。date_from, date_to 是输入变量

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

还有另一个整数变量off_set。我如何在这样的过滤器中使用它,以便记录日期字段的月份增加偏移数字。喜欢

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

标签: pythondjangodjango-views

解决方案


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

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

为此,您可能会考虑dateutil.relativedelta(),尽管这需要单独的pip install python-dateutil. 如果它们还没有date_from,您还需要确保它们date_to已转换为对象。datetime例如:

from dateutil.relativedelta import relativedelta

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

推荐阅读