При использовании функции сортировки в Django Rest Framework вам предоставляется возможность сортировки по определенному полю, по возрастанию и по убыванию.
Эта сортировка группирует сначала нулевые значения, а затем буквенно-цифровые значения. (и это понятно, потому что None меньше «a»)
Но есть ли способ изменить этот порядок, чтобы все наши алфавитно-цифровые значения были отсортированы, а затем сгруппированы после того, как все являются нулевыми значениями?
В настоящее время при сортировке это порядок запросов.
Имена:
Но желаемое поведение выглядит следующим образом.
Имена:
Информация:
Я использую OrderingFilter из-за видового набора.
Это URL для конечной точки API http://192.168.1.85/people/?ordering=first_name
А в классе DRF OrderingFilter метод filter_queryset вызывает этот код здесь queryset.order_by(*ordering)
, что наводит меня на мысль, что это можно решить из самого набора запросов.
Примечание:
Я не уверен, что решение будет в DRF, Django или просто в Pythonсам возраст. Любой будет делать.