Обновление не выдает ошибку целостности (OneToOneField)
Обновление не выдает ошибку целостности ключа "один к одному":
Модель выглядит так:
store = models.ForeignKey(Store, on_delete=models.CASCADE, db_index=True)
credit_type = models.OneToOneField(CreditType, on_delete=models.CASCADE)
value = models.IntegerField(validators=[MinValueValidator(0)], default=0)
и API выглядит так:
curd = 'add'
operate = {'add': operator.add, 'delete': operator.sub}
try:
for index, c_id in enumerate(credit_ids):
StoreCredits.objects.filter(store_id=store_id, credit_type_id=c_id)\
.update(value=operate[curd](F('value'), credit_values[index]))
except IntegrityError:
return {"wrong key entered try again."}
return {"success"}
Другая информация: функция API имеет: @transaction.atomic
и я не преобразую значения POST в int, хотя база данных имеет типы int,
Он работает нормально, просто добавляет удаляет значения, но я хочу обрабатывать неправильные идентификаторы. С внешним ключом он выдает ошибку целостности при передаче неверного идентификатора, здесь он не выдает ошибку, просто возвращает ошибку 'success'
он просто добавляет значения в credit_ids, которые совпадают и ничего не делают с другими