[解決済み] DjangoはManyToManyカウントでモデルをフィルタリングしますか?
2023-07-11 09:44:50
質問
models.pyにこのようなものがあるとします。
class Hipster(models.Model):
name = CharField(max_length=50)
class Party(models.Model):
organiser = models.ForeignKey()
participants = models.ManyToManyField(Profile, related_name="participants")
さて、views.pyで、0人以上の参加者がいるユーザーのパーティーを取得するクエリを実行したいと思います。
このような感じでしょうか。
user = Hipster.get(pk=1)
hip_parties = Party.objects.filter(organiser=user, len(participants) > 0)
最適な方法は?
どのように解決するのですか?
もしこれがうまくいったら......私はこうします。
最良の方法とは、最高のパフォーマンス、最もメンテナンスしやすいなど、多くのことを意味します。 したがって、これが最善の方法であるとは言いませんが、私は、より保守しやすいと思われるので、できるだけORMの機能にこだわりたいと思います。
from django.db.models import Count
user = Hipster.objects.get(pk=1)
hip_parties = (Party.objects.annotate(num_participants=Count('participants'))
.filter(organiser=user, num_participants__gt=0))
関連
-
[解決済み】Djangoのクエリセットフィルタリングでnot equalを行うにはどうすればよいですか?
-
[解決済み] Django のビューで 2 つ以上のクエリセットを結合するにはどうすればよいですか?
-
[解決済み] QuerySetで空白またはNULLの名前をフィルタリングする方法は?
-
[解決済み] django の OneToOneField と ForeignKey の違いは何ですか?
-
[解決済み] Django のカスタムフィールドで User モデルを拡張する
-
[解決済み] RuntimeWarning: DateTimeFieldがナイーブなdatetimeを受信した
-
[解決済み] Django のクエリで OR フィルタを行うにはどうすればよいですか?
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み] django で複数のオブジェクトを削除する
-
[解決済み] Djangoテンプレートでネストされたforループで一番外側のforloop.counterにアクセスする方法は?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
6.5、Django - モデルでJSONFieldを使用してJSONフィールドでMySQLテーブルを作成する
-
Django ForeignKey逆引きクエリにおけるfilterと_setの効率比較
-
Djangoキャッシュの説明
-
[解決済み] RuntimeWarning: DateTimeFieldがナイーブなdatetimeを受信した
-
[解決済み] (13: Permission denied) 上流:[nginx]に接続中。
-
[解決済み] Django テンプレート内で現在の URL を取得する方法は?
-
[解決済み] Django South - テーブルはすでに存在する
-
[解決済み] Docker-Compose使用時にDjangoデータベースのマイグレーションをどのように行うか?
-
[解決済み] Django の DoesNotExist 例外はどのようにインポートしますか?
-
[解決済み] Django はフォームが初期化された後にフィールドの値を設定します。