サブクエリ
外部クエリが実行されるまで評価を延期できるように、すぐには評価されないクエリである必要があります。 get()
すぐに実行され、Queryset
ではなくオブジェクトインスタンスを返すため、請求書に適合しません。 。
ただし、filter
に置き換える get
の場合 次に、[:1]
を取得します スライスは機能するはずです:
StatByHour.objects.filter(hour_of_day=OuterRef('hour_filter')).values('hour_of_day')[:1]
OutsideRef<のフィールド参照に注意してください。 / a> 変数ではなく文字列リテラルです。
さらに、サブクエリは(単一のフィールドに割り当てられているため)単一の列と単一の行を返す必要があるため、values()
と上記のスライス。
また、Q
でサブクエリを使用していません まだオブジェクト;うまくいくかどうかはわかりません。最初にサブクエリの出力を注釈に保存してから、それをフィルタの計算に使用する必要がある場合があります。