我正在尝试根据给定的结束和开始时间过滤django查询的结果。在我的模型中,我有每个数据库条目的开始时间和持续时间。我给函数提供了参数endTime和startTime
我想要的是有一个过滤器来检查给定的endTime是否小于数据库行中给出的开始时间+持续时间,所以类似于以下查询:
query = Results.objects.filter(
r_timeStart__gte=startTime,
(F('r_timeStart') + F('r_duration'))__lte=endTime)
这显然不起作用。现在是我的问题:是否可以将变量与django查询中的两个完整数据库字段进行比较?
答案 0 :(得分:0)
我会尝试创建一个annotate
字段并在过滤器中使用它。
query = Results.objects.annotate(current_time=F('r_timeStart') + F('r_duration'))
.filter(r_timeStart__gte=startTime, current_time__lte=endTime)