您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

按Model的属性(而非字段)对Django QuerySet进行排序

按Model的属性(而非字段)对Django QuerySet进行排序

QuerySet.extra()CASE ... END一起使用,以定义一个新字段,并对该字段进行排序。

Stops.objects.extra(select={'cost': 'CASE WHEN price=0 THEN 0 '
  'WHEN type=:EXPRESS_STOP THEN price/2 WHEN type=:LOCAL_STOP THEN price*2'},
  order_by=['cost'])

那,或将QuerySet其余部分返回的内容转换为列表,然后L.sort(key=operator.attrgetter('cost'))在其上使用。

Go 2022/1/1 18:32:53 有520人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶