Насколько я понимаю, case в бд отрабатывает уже когда весь запрос сформирован на отдачу и он просто подменяет результат для того чтоб показать его тебе
TICKET_STATUS_OPEN = 1
TICKET_STATUS_CLOSE = 2
TICKET_STATUS_DEPRECATED = 3
TICKET_STATUS_TRASH = 4
TICKET_STATUSES = (
(TICKET_STATUS_OPEN, 'OPEN'),
(TICKET_STATUS_CLOSE, 'CLOSE'),
(TICKET_STATUS_DEPRECATED, 'DEPRECATED'),
(TICKET_STATUS_TRASH, 'TRASH'),
)
title = models.CharField(max_length=100)
status = models.PositiveIntegerField(max_length=2, choices=TICKET_STATUSES, default=TICKET_STATUS_OPEN)
Сортировать просто по полю - там ведь просто циферки
Можно сделать хак типа
1_OP
2_CL
3_DP
4_TR
Можно
stackoverflow.com/questions/883575/custom-ordering...
Но на обьемах будет медленно, очень медленно