私は 'StoreItem'というモデルと 'QuoteItem'というモデルを持っています。 QuoteItemはStoreItemをポイントします。django annotate - 条件付きカウント
私は、いくつの見積もりアイテムが店舗アイテムを指し示しているが、見積もりアイテムに適用するための条件を付けるかのカウンタに注釈を付けることを試みています。
items = items.annotate(
quote_count=Count(
Case(
When(quoteitem__lookup_date__in=this_week, then=1),
output_field=IntegerField()
)
)
)
'アイテム' はStoreItemsのクエリセットです:
私はこのような何かを試してみました。 'this_week'は今週を表す日付のリストです(これが私が適用しようとしているフィルタです)。私は日付のものを動作させた後、この条件付きカウントにさらにフィルタを追加したいが、それを開始することができます。私が取得していますどのようなとにかくは、より多くのブールのようなものです - 条件が存在する一致引用項目は、関係なく、私が持っているどのように多く、カウンタは他1.できなくなります場合は、0
なりに見えますCount(Case())
のようにアイテムが存在するかどうかだけチェックし、そうであれば1を返します。ストアアイテムをポイントするすべてのクォートアイテムを繰り返し処理し、条件に一致する場合はカウントします(個別に)。
どうすればいいですか?