我有我的數據庫表和模型下面的兩個字段(型號名稱訂購):Django管理使分揀計算領域
id, branch_id, product_id, cost, quantity, status, ordered_at
而且我在OrderModelAdmin下面的代碼:
list_display = (
'order_number',
'branch',
'product',
'cost',
'quantity',
'calculated_total',
'status',
'ordered_at',
)
def calculated_total(self, obj):
return obj.cost * obj.quantity
calculated_total.short_description = _('Total')
現在,我想啓用該字段的排序。在現實中,我需要做的是在我的SELECT語句中添加一列:
SELECT (t.cost * t.quantity) as TOTAL
ORDER BY TOTAL
有沒有一種方法,我可以追加SQL語句在Django管理排序?
我用註解,它工作正常,它是有道理的,但上面的代碼需要一些調整。我不得不添加'calculated_total.admin_order_field ='total''。實際上,這正是我所期待的。能夠添加自定義列並根據該列對該字段進行排序。謝謝! – Gasim
@Gasim好點!默認情況下,我的原始答案按總數排序查詢集。如果您想要點擊列進行排序,您需要設置「admin_order_field」。我已經添加了答案。 – Alasdair