[解決済み] Django は、distinct フィールドで count をアノテートします。
2023-05-08 10:40:47
質問
私は2つのモデルをこのように緩やかに定義しています。
class InformationUnit(models.Model):
username = models.CharField(max_length=255)
project = models.ForeignKey('Project')
...
class Project(models.Model):
name = models.CharField(max_length=255)
さて、ビューの中で、すべての
InformationUnit
をアノテーションしたいので、このようにします。
p = Project.objects.all().annotate(Count('informationunit')
で、まあまあうまくいきます。
さらに、私は各プロジェクトで、どれくらいの数の異なる
username
が参加しているのかを知りたいのです。
つまり、何人の異なる
username
の中にある
InformationUnit
があり、それが1つのプロジェクトを構成しています。
を試しましたが、これは単に
InformationUnit
に関係なく、単に
username
:
p = Project.objects.all().annotate(Count('informationunit__username')
なお
username
はオブジェクトではなく、文字列であることに注意してください。これを行うためのきれいな方法はありますか、それともループとスパゲッティコードに基づいたより複雑なコードを作成する必要がありますか :P
どうもありがとうございます。
どのように解決するのですか?
Count
を取ることができます。
distinct
のような引数を取ることができます。
p = Project.objects.all().annotate(Count('informationunit__username',
distinct=True))
これは文書化されていないようですが、Countのソースに記載されています。
関連
-
[解決済み] pipでPythonの全パッケージをアップグレードする方法
-
[解決済み] リスト項目の出現回数を数えるにはどうしたらいいですか?
-
[解決済み] Pandas DataFrameの行数を取得する方法は?
-
[解決済み】Djangoでnull=Trueとblank=Trueの違いは何ですか?
-
[解決済み] django.db.migrations.exceptions.InconsistentMigrationHistory
-
[解決済み] なぜ(0-6)は-6=偽なのか?重複
-
[解決済み] Pythonで0xを使わずにhex()を使うには?
-
[解決済み] Django で全てのリクエストヘッダを取得するにはどうすれば良いですか?
-
[解決済み] Flask でグローバル変数はスレッドセーフか?リクエスト間でデータを共有するには?
-
[解決済み] if 節の終了方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] PythonでファイルのMD5チェックサムを計算するには?重複
-
[解決済み] PILからopenCVフォーマットへの変換
-
[解決済み] 辞書のキーと値を交換するにはどうすればよいですか?
-
[解決済み] Python 2.7サポート終了?
-
[解決済み] Pandasの'Freq'タグにはどのような値が有効ですか?
-
[解決済み] スペースがないテキストを単語のリストに分割する方法
-
[解決済み] Python Logging でログメッセージが2回表示される件
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?
-
[解決済み] 新しいpip backtrackingの実行時問題の解決