Python django数据库查询中的复杂排序
我的数据库中有以下条目:Python django数据库查询中的复杂排序,python,django,django-models,Python,Django,Django Models,我的数据库中有以下条目: `title` `status` Titanic WIP Avatar WIP Terminator Complete Abyss Default 我想按对象的状态对这些对象进行排序:默认、在制品、完成。正确的顺序是: Abyss / Default Avatar / WIP Titanic / WIP Terminator / Complete 我将如何执
`title` `status`
Titanic WIP
Avatar WIP
Terminator Complete
Abyss Default
我想按对象的状态对这些对象进行排序:默认、在制品、完成。正确的顺序是:
Abyss / Default
Avatar / WIP
Titanic / WIP
Terminator / Complete
我将如何执行以下db调用
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')
Django 1.8中的可能副本您不必使用extra
您可以使用,请参见此处: