在django中使用ORDER BY FIELD(名称,'Apple','Banana')

Pol*_*Pol 2 django

我想在Django中使用ORDER BY FIELD()(MySQL).Django支持吗?

所以在MySQL中它看起来像:

SELECT * FROM fruit 
ORDER BY FIELD(name, 'Banana', 'Apple', 'Pear', 'Orange'), variety;
Run Code Online (Sandbox Code Playgroud)

我想在django ORM中使用它.我怎样才能做到这一点.我可以这样做吗order_by()?或以extra()某种方式使用.

不这样工作:

Fruit.objects.all().extra(order_by="FIELD(name, 'Banana', 'Apple', 'Pear', 'Orange')")

Chr*_*att 7

一个小Google-FU发现了这个:http://davedash.com/2010/02/11/retrieving-elements-in-a-specific-order-in-django-and-mysql/

Fruit.objects.extra(
    select={'manual': "FIELD(name, 'Banana', 'Apple', 'Pear', 'Orange')"},
    order_by=['manual']
)
Run Code Online (Sandbox Code Playgroud)