0

私は Django を初めて使用し、フィルタリングに問題があります。人為的な例を許してください。私は、出席者と 1 対多の関係を持つイベントのモデルをいくつか持っています。一連のイベントから、ボストンで開催されるイベントを除外したいと考えていますが、参加者が 1 人しかいない場合に限られます。以下のコードは、私が試したものであり、間違いなく機能しません。

queryset = queryset.annotate(attendees_count=Count('attendees')).exclude(attendees_count=1, event_location__city="Boston")

エラーは発生しません。むしろ、「attendees_count」に関係なく「Boston」を除外するだけです。

やりたいことを実際に実行するクエリに加えて、実行したことが機能しない理由を理解したいと思います。前もって感謝します。

4

1 に答える 1

0

元のクエリセットには、参加者が 1 人を超えるボストンが含まれていますか?

https://docs.djangoproject.com/en/dev/ref/models/querysets/#django.db.models.query.QuerySet.exclude

複数のパラメーターは、基になる SQL ステートメントで AND を介して結合され、全体が NOT() で囲まれます。

于 2013-09-17T18:08:52.573 に答える