5

データベースに次のエントリがあります。

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

これらのオブジェクトをオブジェクトのステータス (デフォルト、WIP、完了) で並べ替えたいと考えています。正しい順序は次のようになります。

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

次の db 呼び出しを行うにはどうすればよいですか?

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

1 に答える 1

4

このクエリを実行するには、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')
于 2012-08-17T02:53:42.023 に答える