8
我很驚訝,這個問題顯然還不存在。如果是這樣,請幫我找到它。Django條件註釋
我想使用annotate(Count)和order_by,但我不想計算相關對象的每個實例,只有那些符合某個標準的對象。
要機智,我可能會被綠色的椰子數量列出燕子他們進行:
swallow.objects.annotate(num_coconuts=Count('coconuts_carried__husk__color = "green"').order_by('num_coconuts')
事實上,這似乎工作,但對於你所指出的原因,這是完全反直覺。我希望這個查詢集能夠給我所有曾經攜帶過至少一顆綠椰子的燕子,按照不論顏色攜帶的椰子總數排序。 – jMyles
@jMyles:文檔指出,這取決於[順序註釋和濾波器條款(https://docs.djangoproject.com/en/1.3/topics/db/aggregation/#order-of-annotate-上和過濾器子句) - 反過來說,它會像你描述的那樣行事。 –
如果你想包括那些沒有攜帶綠色椰子的燕子呢? –