У меня есть операция записи, которая добавляет запись в модель 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
Как справиться с ошибками ограничения, такими как уникальные или не нулевые от DB в Django ⇐ MySql
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как справиться с ошибками ограничения, такими как уникальные или не нулевые от DB в Django
Anonymous » » в форуме Python - 0 Ответы
- 2 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Почему короткие нулевые значения преобразуются в нулевые значения int для сравнения с нулевым?
Anonymous » » в форуме C# - 0 Ответы
- 36 Просмотры
-
Последнее сообщение Anonymous
-