python - 在过滤器中的模型字段中按间隔增加日期的月份
问题描述
我得到这样的对象。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))
解决方案
如评论中所述,您可以从范围中减去偏移量以过滤相关记录。
由于月份的天数不同(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))
推荐阅读
- python - 我正在尝试代码,但不知道我在某个页面上遇到错误,例如没有对象属性
- sql - 使用 DBI 使用 Perl 连接到 SQL Server?
- javascript - 如何消除 Bootstrap 中列排序之间的差距
- python - 安装 etetoolkit 时出错。使用 anaconda 安装时
- ffmpeg - ffmpeg for windows:连接视频时出错
- python - 如何加载、深入梦想和覆盖文件夹中的所有图像?
- spring - 运行 Maven 命令(在 Git Bash 中)会影响已经在 Intellij IDE 中运行的进程吗?
- php - mysql查询1233
- javascript - 如何在选中/取消选中复选框时切换(开/关)行为?
- tableau-api - 是否可以在 Tableau 中按字母顺序排列字符串?