Начните с простого (для вас, как разработчика), вы можете довольно легко отобразить позицию в ListView.
Вы можете добавить некоторый JavaScript, чтобы превратить каждое отображение позиции в контроллер - / +.Вы можете сделать так, чтобы эти +/- виджеты имели обработчики onclick, которые делают ajax-вызов к пользовательскому представлению, которое обрабатывает сортировку.
Представление ajax довольно простое, вы просто берете предыдущий элемент по порядку:
old_pos = ItemToBumpDown.position
DisplacedItem = MenuItems.objects.filter(position__lt = ItemToBumpDown.position)[0]
ItemToBumpDown.position = DisplacedItem.position
DisplacedItem.position = old_pos
ItemToBumpDown.save()
DisplacedItem.save()
Ваш обратный вызов ajax, когда вызов завершен, может состоять в том, чтобы поменять строку администратора настроенного элемента либо на предыдущий, либо на следующий элемент.
Возможно, вам придется выполнить некоторую полировку, но этодолжно быть начало.