Dav*_*542 5 python django django-models
我的数据库中有以下条目:
`title` `status`
Titanic WIP
Avatar WIP
Terminator Complete
Abyss Default
Run Code Online (Sandbox Code Playgroud)
我想按对象的状态对这些对象进行排序:默认,然后是 WIP,然后是完成。正确的顺序是:
Abyss / Default
Avatar / WIP
Titanic / WIP
Terminator / Complete
Run Code Online (Sandbox Code Playgroud)
我将如何进行以下数据库调用?
Title.objects.order_by(status='Default', status='WIP', status='Complete',title)
Run Code Online (Sandbox Code Playgroud)
要执行此查询,您可以使用 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')
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1370 次 |
| 最近记录: |