Как настроить порядок сортировки в django как mysql ПОЛЕ Функция - PullRequest
0 голосов
/ 11 марта 2020

Как написать Django queryset пользовательский порядок сортировки, такой как MySQL функция поля в Django

select status from company order by FIELD(status, 'Follow Up', 'Interested - Call back scheduled', 'Need to send details', 'Quotation sent')


Comapany.objects.all().order_by(?)

Ответы [ 2 ]

0 голосов
/ 11 марта 2020

Просто укажите имя столбца внутри order_by (), как показано ниже.

Comapany.objects.all().order_by('column_name')

Приведенный выше код выдаст результат в порядке возрастания. Если вы хотите получить результат в порядке убывания, добавьте - (минус) перед именем столбца, как показано ниже.

Comapany.objects.all().order_by('-column_name')

Надеюсь, это поможет вам.

0 голосов
/ 11 марта 2020

Вы можете использовать objects.extra ()

Company.objects.extra(
    select={'manual': "FIELD(status, 'Follow Up', 'Interested - Call back scheduled', 'Need to send details', 'Quotation sent')"},
    order_by=['manual']
)
...