Если вы думаете о SQL, стоящем за Player.objects.order_by('-score')
, это SELECT player.* from player order by player.score desc
. Я не уверен, что то, что вы хотите сделать, возможно без вложенного запроса MySQL, который технически в любом случае был бы двумя запросами.
Если вы вернетесь к исходному решению, оно действительно не будет таким сложным.
Если вас интересует производительность, я предлагаю вам проверить django-debug-toolbar
, если вы еще этого не сделали. Этот небольшой пакет предоставляет время и статистику по запросам. Последняя версия (0.8.3) также предоставляет плагин CLI, который показывает вам запросы, выполненные с использованием manage.py shell
(называемый debugsqlshell
).