在Django中,我有一個視圖,在該視圖中,我想按非主鍵字段進行分組,然後爲每個組計數滿足謂詞的行數。我試過的代碼是計算在Django中滿足謂詞的行
funding_requests=FRNs.objects.filter(spin=spin).extra(
select={"approved": "committed_amount > 0",
"denied": "committed_amount=0"}
).values("funding_year").annotate(
requested=Sum('orig_commitment_request'), approved=Sum('committed_amount'),
disbursed=Sum('total_authorized_disbursement'), num_requests=Count("funding_year"),
num_approved=Sum('approved'), num_denied=Sum('denied')
)
但我得到錯誤消息「Can not resolve keyword'denied'into field。」我也試過
funding_requests=FRNs.objects.filter(spin=spin).values("funding_year").annotate(
requested=Sum('orig_commitment_request'), approved=Sum('committed_amount'),
disbursed=Sum('total_authorized_disbursement'), num_requests=Count("funding_year")
).extra(
select={"num_approved": "sum(committed_amount > 0)",
"num_denied": "sum(committed_amount=0)"}
)
,我沒有得到一個錯誤,但num_approved
和num_denied
顯示在頁面上爲空白。有誰知道如何獲得滿足給定謂詞的每個分組的行數。
我有這種說法,這樣的數額將每年的例子是https計算,如: //docs.djangoproject.com/en/1.3/topics/db/aggregation/#values – murgatroid99