0

アノテーションを使用したモデルとクエリを考えてみましょう。たとえば、 Djangoドキュメントの次の例です。

Publisher.objects.filter(book__rating__gt=3.0).annotate(num_books=Count('book'))

このクエリの結果には、フィルターに一致する (つまり、book_rating が 3.0 より大きい) オブジェクトのみが含まれ、これらのオブジェクトには注釈が付けられています。しかし、クエリにすべてのオブジェクトを含めたいが、フィルターに一致するオブジェクトにのみ注釈を付ける(または、たとえば 0 で注釈を付ける) 場合はどうすればよいでしょうか? それともこれは可能ですか?

4

1 に答える 1

0

いいえ、それはできません。基礎となる SQL の仕組みがそうではないからです。

私が考えることができる唯一のことは、フィルター/注釈を使用するクエリと使用しないクエリの 2 つのクエリを実行し、Python でそれらを反復処理して、フィルター処理されていないリストから一致するオブジェクトに注釈を追加することです。

于 2011-02-11T09:27:07.007 に答える