Как справиться с ошибками ограничения, такими как уникальные или не нулевые от 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
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

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