この表のユーザーIDのカウントは、approval_transaction_typeとapproval_typeの列に基づいて取得します。Django:2列で特定の列の数を取得する方法
本の期待される結果は次のようになります。
承認トランザクションタイプID(60)
- 承認タイプID(65)= 2ユーザー
- 承認タイプID(64)= 2ユーザー
- 承認タイプID(63)= 2人のユーザー
- 承認タイプID(62)= 2ユーザー
- 承認タイプID(61)= 2ユーザー
達成するために私の現在のコードは、これはですが、それはサブリストを上書きして(最後の配列は、すべての配列を上書きしますなぜ私は理解していない)間違った結果を返します。
for transaction in transaction_types:
# Initial Array
transaction["approval_types"] = []
for approval_type in approval_types:
# Get Count of Users
approval_type["count"] = Model.objects.filter(approval_transaction_type=transaction['id'],approval_type=approval_type['id']).values().count()
# Assign this sub list to main list
transaction["approval_types"].append(approval_type)
どのように私は何をルーピングせずにカウントを取得し、クエリーセットを使用しますか? これについて何かが分からない場合は教えてください。ありがとう!
Django> 1.8には条件付き集計があります。 https://docs.djangoproject.com/en/1.10/ref/models/conditional-expressions/を参照し、ケース機能を使用できます。 – wrdeman
[Django相当数の重複する可能性があります](http://stackoverflow.com/questions/327807/django-equivalent-for-count-and-group-by) –