Есть модель с уникальным полем заполненная уникальными значениями.
class MyModel(models.Model):
uniqfield = models.IntegerField('Уникальное поле', unique=True)
В админке есть класс, наследованный от ModelAdmin, для редактирования этой модели.
@admin.register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
list_display = ('uniqfield',)
def save_model(self, request, obj, form, change):
try:
obj.save()
except
# соообщение об не уникальности вставляемых значений
Хочу одновременно поменять, например, два значения в этом поле друг на друга. Например:
pk=1, uniqfield=1
pk=2, uniqfield=2
я в форме редактирования на странице меняю их местами и хочу получить:
pk=1, uniqfield=2
pk=2, uniqfield=1
obj.save() выкидывает предсказуемый эксепшн из за не уникальности значений, т.е. при обновлении первого значения в таблице оно еще присутствует.
Как это сделать?