From 2943299c086f13d93c069337f45339d417014fa2 Mon Sep 17 00:00:00 2001 From: lizerk Date: Fri, 20 Mar 2026 09:01:54 +0300 Subject: [PATCH] Fix: Handle both dict and QueryDict in perform_update DRF request.data is dict for JSON but QueryDict for form data. Use hasattr check to call .dict() only when available, otherwise use dict() constructor for plain dicts. --- backend/api/v1/employees/views/employees.py | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/backend/api/v1/employees/views/employees.py b/backend/api/v1/employees/views/employees.py index 9ccf63ae..e9833336 100644 --- a/backend/api/v1/employees/views/employees.py +++ b/backend/api/v1/employees/views/employees.py @@ -205,9 +205,11 @@ class EmployeeViewSet(viewsets.ModelViewSet): old_email = instance.email # Передаем данные для синхронизации с LDAP (через сигналы) - # request.data — это QueryDict, dict() конвертирует значения в списки. - # Используем .dict() чтобы получить одиночные значения. - instance._ldap_changes = self.request.data.dict() + # DRF request.data может быть dict (JSON) или QueryDict (form data) + data = self.request.data + instance._ldap_changes = ( + data.dict() if hasattr(data, 'dict') else dict(data) + ) if 'avatar' in self.request.FILES: instance._ldap_avatar = self.request.FILES['avatar']