Unique=True дать Уже существует! Даже при чередовании значений двух объектов
Для отображения объектов (членов) в определенном порядке я сделал поле order
order = models.IntegerField(unique=True,null=True,blank=True)
чтобы я мог .order_by('order')
иметь его в требуемом порядке
В Django Admin, в таблице есть только 2 объекта с order
0,1. Если я хочу поменять их местами на 1,0, выдается ошибка About us with this Order already exists.
Для простоты использования Django admin, есть ли лучший метод для достижения вышеуказанного
Вы можете убрать unique=True
и добавить пользовательское действие для переупорядочивания объектов. В таком виде Django admin применяет каждый объект в отдельной транзакции и это вызывает данную ошибку. Вы можете переопределить функцию update вашего класса администратора и делать все изменения в транзакции bulk-update, как this. Но я не рекомендую этого делать. Потому что в будущем вы можете допустить ошибку и захотите отредактировать другие поля, а эта строка вызовет ошибку.