fix: Base64ImageField теперь корректно обрабатывает пустые файлы (size=0)

This commit is contained in:
admin i 2025-12-02 11:35:23 +03:00
parent 1b1989c76e
commit 6c5b20a35b

View File

@ -116,8 +116,34 @@ class Base64ImageField(serializers.ImageField):
# Если это не строка (например, InMemoryUploadedFile)
logger.info(
f"[Base64ImageField] Не строка, передаем в parent as-is"
"[Base64ImageField] Не строка, передаем в parent as-is"
)
# КРИТИЧНО: проверяем, не пустой ли файл
if hasattr(data, 'size') and data.size == 0:
logger.warning(
"[Base64ImageField] Пустой файл (size=0), "
"возвращаем None"
)
return None
if hasattr(data, 'read'):
# Проверяем содержимое файла
try:
content = data.read()
if hasattr(data, 'seek'):
data.seek(0)
if not content or len(content) == 0:
logger.warning(
"[Base64ImageField] Файл пустой (len=0), "
"возвращаем None"
)
return None
except Exception as e:
logger.error(
f"[Base64ImageField] Ошибка чтения файла: {e}"
)
result = super().to_internal_value(data)
logger.info(
f"[Base64ImageField] Parent validation passed, "