是否可以在订单取决于关键字的情况下进行自定义排序?
想象一下,我有一个包含code
和name
列的表格。
值为:
BASK - Basketball
BSBL - Baseball
ABAL - Angle Ball
BALC - Code Ball
我点击搜索框中的单词" BA"。查询将是
`Balls.objects.filter(Q(code__istartswith="BA") | Q(name__icontains="BA"))`
我将如何制作它以使结果处于以" BA"开头的代码的顺序。将首先列在清单上(按代码排序),然后是以" BA"开头的名称。 (按名称排序),然后是包含" BA"的代码的排序结果。 +包含" BA"
的名称预期结果应为
BALC - Code Ball
BASK - Basketball
BSBL - Baseball
ABAL - Angle Ball
对于" BAL",结果顺序应为
BALC - Code Ball
ABAL - Angle Ball
BSBL - Baseball
BASK - Basketball
有没有办法通过django queryset或自定义mysql查询来做到这一点?如果通过mysql然后我知道我将不得不使用.extra()
方法