Я не знаю, что это лучший способ решить эту проблему.
Но это сработало для меня, поэтому надеюсь, что этот код полезен для вас.
_count = [2, 4, 7, 3, 5, 8]
ordering = []
ordering.append(Case(*[When(pk=pk, then=pos) for pos, pk in enumerate(_count)]))
pk - это Имя поля В моем коде pk - это Первичный ключ в модели. Если вы хотите упорядочить по имени, вы можете изменить pk на name.
А потом позиция рк.
Model.objects.all().order_by(*ordering)
После настройки списка упорядочивания вы можете применить это условие в запросе, как верхний код.
Я не уверен, но порядок условий также важен.
Потому что это Эффект условия, в свою очередь, в значении списка.
+) Я не очень хорош в Engli sh, но я делаю все возможное, чтобы объяснить свой код. Так что, если я ошибся в своем ответе, пожалуйста, прокомментируйте меня.