簡體   English   中英

django db查詢中的復雜排序

[英]Complex ordering in django db query

我的數據庫中有以下條目:

`title`            `status`
Titanic            WIP
Avatar             WIP
Terminator         Complete
Abyss              Default

我想根據對象的狀態對這些對象進行排序:默認,然后是WIP,然后是完成。 那么正確的順序是:

Abyss / Default
Avatar / WIP
Titanic / WIP
Terminator / Complete

我該如何進行以下數據庫調用?

Title.objects.order_by(status='Default', status='WIP', status='Complete',title)

要執行此查詢,您可以使用django的extra

titles = Title.objects.all()
ordered_query = titles.extra(select={
                'ordering':"(
                    case when status='Default' then 1 
                         when status='WIP' then 2
                         when status='Complete' then 3
                    end)"
                }).order_by('ordering', 'title')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM