diff --git a/myproject/orders/views.py b/myproject/orders/views.py index 26e57b1..6c19e1d 100644 --- a/myproject/orders/views.py +++ b/myproject/orders/views.py @@ -246,6 +246,15 @@ def order_update(request, order_number): messages.success(request, f'Заказ #{order.order_number} успешно обновлен!') return redirect('orders:order-detail', order_number=order.order_number) + except ValidationError as e: + # Ошибка валидации (например, запрет смены статуса для возвращённого заказа) + # Транзакция откатилась, заказ НЕ изменился + # Показываем сообщение из исключения без служебных элементов + error_message = str(e.message) if hasattr(e, 'message') else str(e) + # Если это список ошибок, берём первую + if hasattr(e, 'messages'): + error_message = e.messages[0] if e.messages else str(e) + messages.error(request, error_message) except ValueError as e: # Ошибка в сигналах (например, не удалось создать Sale) # Транзакция откатилась, статус НЕ изменился