How can I bulk increment an IntegerField that has a unique constraint?
For example:
class Rank(models.Model):
level = models.IntegerField(unique=True)
>> Rank.objects.create(level=1)
>> Rank.objects.create(level=2)
>> Rank.objects.create(level=3)
>> Rank.objects.all().update(level=F('level')+1)
django.db.utils.IntegrityError: (1062, "Duplicate entry '1' for key 'myapp_rank.level'")
The following query works fine in MySQL (assuming SQL_SAFE_UPDATES=0):
UPDATE myapp_rank t SET t.rank = t.rank + 1;
Is there a way to do this using the ORM?