python - Django ORM 可以对列的特定值执行 ORDER BY 吗?

标签 python mysql django orm

我有一个包含以下列的表格“门票”

  • id - 主键 - 自动递增
  • 标题 - varchar(256)
  • status - smallint(6) - 可以是 1 到 5 之间的任何值,由 Django 处理

当我执行 SELECT * 时,我希望 status = 4 在顶部的行,其他记录将跟随它们。可以通过以下查询来实现:

select * from tickets order by status=4 DESC

这个查询可以通过 Django ORM 执行吗? QuerySet.order_by() 方法应该传递哪些参数?

最佳答案

q = Ticket.objects.extra(select={'is_top': "status = 4"})
q = q.extra(order_by = ['-is_top'])

关于python - Django ORM 可以对列的特定值执行 ORDER BY 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2176346/

相关文章:

PHP 在输入表单之前显示 'Not found"消息

android - 尝试在空对象引用上调用虚拟方法 'java.lang.String java.lang.Object.toString()'

python - 渲染而不传递请求

python - 使用manage.py shell在ipython存在的情况下运行普通的python解释器

python - 嵌套列表中重复列表的索引

php - java.lang.String 类型的值 <br 无法转换

python - 在 Django URL 中,使 "foo.com/Bar"与 "foo.com/bar"相同的正则表达式是什么

使用 Heroku 部署 Django

Python - 将脚本安装到系统

python - 删除字符串中与列表Python范围内的数字不对应的位置的字母