【发布时间】:2021-01-15 00:43:30
【问题描述】:
我是 django 新手,我有一张表格,里面有多个不同日期范围的条目。我只想获取唯一的范围,然后从中获取天数。例如
考虑以下三个范围:
1. 10-09-2017 to 10-09-2019
2. 10-08-2018 to 10-02-2020
2. 04-04-2020 to 04-04-2020
在上面的示例 1 和 2 中有重叠的日期,点 2 的实际计算应该将点 1 的 start_range 更改为点 1 的 end_range,然后根据此计算天数(我知道这可能有点令人困惑,我如果需要,我很乐意进一步解释)我可以使用类似以下的方法来获取每个 date_range 的天数差异
calculate_experience = ExpressionWrapper(
Case(
When(experiences__end__isnull=True, then=date.today()-F('start'))[0].days, default=F('end')-F('start')),
distinct=True, filter=Q(is_active=True), output_field=DurationField()
)
但我不知道如何从中获得唯一的范围,唯一想到的是将这些放在一个列表中,然后迭代该手动设置范围,然后计算差异。有一个更好的方法吗?非常感谢任何帮助或方向感。谢谢!
【问题讨论】:
标签: python django django-models django-rest-framework django-orm