Как справиться с ошибками ограничения, такими как уникальные или не нулевые от DB в DjangoMySql

Форум по Mysql
Anonymous
Как справиться с ошибками ограничения, такими как уникальные или не нулевые от DB в Django

Сообщение Anonymous »

У меня есть операция записи, которая добавляет запись в модель Rider. Rider_code уникален в этом. Теперь 1 способ - сначала проверить, существует ли какая -либо запись с этим Rider_code, затем верните ошибку, иначе создайте Rider. Но это требует 2 вызовов дБ, когда БД может вернуть ошибку ограничения при создании, которая будет одним вызовом. Но как правильно поймать эти ошибки ограничения в Django. def create_rider(request):
serializer = RiderSerializer(data=request.data, context={"request": request})
if serializer.is_valid():
try:
rider = serializer.save()
return True, rider
except IntegrityError as e:
error_msg = str(e)

if "ds_riders.ds_riders_rider_code_d4b087a9_uniq" in error_msg:
return False, {"details": "Rider Code already exists."}
if "application_users.username" in error_msg:
return False, {"details": "Username already exists."}

return False, {"details": error_msg}

return False, serializer.errors`


Подробнее здесь: https://stackoverflow.com/questions/796 ... -in-django

Вернуться в «MySql»