'unique=True gives already exist! Even if interchanging the values of two objects
To display objects (members) in particular order, I have made a field, order
:
order = models.IntegerField(unique=True,null=True,blank=True)
so that I can do an .order_by('order')
to get the required order.
In Django Admin, the table has only two objects with order
0,1. If I want to interchange it by 1,0 I get an error:
About us with this Order already exists
For ease of using Django admin, is there a better method to achieve the above?
Solution 1:[1]
You can remove unique=True
and add a custom action to reorder objects. In this form, Django admin applies each object in a separate transaction and it causes this error. You may override the update function of your admin class and do all changes in a bulk-update transaction like this. But I don't recommend it. Because you may make a mistake in the future and want to edit other fields and this line makes a bug.
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | mrash |