fix: handle empty avatar field in employee profile update
- Add validate_avatar() to ignore empty strings from FormData - Prevent avatar field update when value is None (no file selected) - Fix ValidationError 'Загруженный файл не является корректным файлом' - User can now update profile without changing avatar
This commit is contained in:
parent
5e8ca6c25d
commit
b32e2b9865
@ -337,8 +337,23 @@ class EmployeeSerializer(serializers.ModelSerializer):
|
||||
data = super().to_representation(instance)
|
||||
return data
|
||||
|
||||
def validate_avatar(self, value):
|
||||
"""
|
||||
Игнорируем пустые строки в поле avatar.
|
||||
Они приходят из FormData без файла.
|
||||
"""
|
||||
if value == '':
|
||||
# Пустая строка означает, что файл не выбран
|
||||
return None
|
||||
return value
|
||||
|
||||
def update(self, instance, validated_data):
|
||||
skills = validated_data.pop("skills_ids", None)
|
||||
|
||||
# Если avatar=None (пустая строка из FormData), не обновляем его
|
||||
if "avatar" in validated_data and validated_data["avatar"] is None:
|
||||
validated_data.pop("avatar")
|
||||
|
||||
instance = super().update(instance, validated_data)
|
||||
if skills is not None:
|
||||
instance.skills.set(skills)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user