@grecha10

Как обновить уникальное поле в ModelAdmin не уникальным значением при групповом обновлении данных?

Есть модель с уникальным полем заполненная уникальными значениями.
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() выкидывает предсказуемый эксепшн из за не уникальности значений, т.е. при обновлении первого значения в таблице оно еще присутствует.

Как это сделать?
  • Вопрос задан
  • 96 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы