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'))
在其上使用。