diff --git a/backend/api/v1/employees/views.py b/backend/api/v1/employees/views.py index df0e7927..6e5f61d0 100644 --- a/backend/api/v1/employees/views.py +++ b/backend/api/v1/employees/views.py @@ -1713,11 +1713,22 @@ class EmployeeViewSet(viewsets.ModelViewSet): else: logger.info(f"[ME PATCH] ✓ avatar НЕТ в request.FILES") + # КРИТИЧЕСКОЕ ИСПРАВЛЕНИЕ: удаляем пустое поле avatar ДО валидации + data_for_serializer = request.data + if 'avatar' in request.data: + avatar_value = request.data.get('avatar') + logger.info(f"[ME PATCH] � Проверяем avatar: type={type(avatar_value)}, value={repr(avatar_value)[:100]}") + + # Если avatar - пустая строка, создаем копию данных без него + if avatar_value == '': + logger.warning(f"[ME PATCH] 🔧 Удаляем пустое поле avatar из данных") + data_for_serializer = {k: v for k, v in request.data.items() if k != 'avatar'} + logger.info("[ME PATCH] Step 1: Validating serializer...") - logger.info(f"[ME PATCH] Step 1: Передаем в сериализатор data с ключами: {list(request.data.keys())}") + logger.info(f"[ME PATCH] Step 1: Передаем в сериализатор data с ключами: {list(data_for_serializer.keys())}") try: - ser = self.get_serializer(instance, data=request.data, partial=True) + ser = self.get_serializer(instance, data=data_for_serializer, partial=True) ser.is_valid(raise_exception=True) logger.info("[ME PATCH] Step 1: ✓ Serializer validated successfully") except ValidationError as ve: diff --git a/backend/employees/views_front.py b/backend/employees/views_front.py index 33673d75..949c3732 100644 --- a/backend/employees/views_front.py +++ b/backend/employees/views_front.py @@ -572,6 +572,10 @@ def employee_edit_me(request): for key, value in parsed_post.items(): if key == 'csrfmiddlewaretoken': continue + # Пропускаем пустое поле avatar (приходит из FormData без файла) + if key == 'avatar' and value == '': + logger.info("[employee_edit_me] Skipping empty avatar field") + continue # Если это массив (например skills_ids) if key.endswith('_ids') or key == 'skills': payload[key] = parsed_post.getlist(key)