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.
This commit is contained in:
lizerk 2026-03-20 09:01:54 +03:00
parent 55d0bcf906
commit 2943299c08

View File

@ -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']