簡體   English   中英

是否可以將變量與Django查詢中的兩個累加數據庫字段進行比較?

[英]Is it posible to compare a variable to two accumalated database fields in a django query?

我試圖根據給定的結束時間和開始時間過濾django查詢的結果。 在我的模型中,每個數據庫條目都有一個開始時間和持續時間。 我給函數參數endTime和startTime

我想要的是一個過濾器,用於檢查給定的endTime是否小於數據庫行中給定的開始時間+持續時間,因此類似以下查詢:

query = Results.objects.filter(
            r_timeStart__gte=startTime,
            (F('r_timeStart') + F('r_duration'))__lte=endTime)

這顯然行不通。 現在是我的問題:在Django查詢中是否可以將變量與兩個累積的數據庫字段進行比較?

我會嘗試創建一個annotate字段並在過濾器中使用它。

query = Results.objects.annotate(current_time=F('r_timeStart') + F('r_duration'))
.filter(r_timeStart__gte=startTime, current_time__lte=endTime)

過濾注釋

Django中的注釋和聚合

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM