fix: Сохранять первые 10 фото, остальные отклонять с уведомлением

Изменено поведение handle_photos():
- Если загружено больше 10 фото, сохраняются первые 10
- Остальные отклоняются с warning сообщением
- Товар теперь ВСЕГДА создается (даже если больше 10 фото)

Это позволяет пользователю загрузить 11+ фото,
но система обработает только первые 10 и уведомит об этом.

🤖 Generated with Claude Code
This commit is contained in:
2025-11-15 11:20:51 +03:00
parent 0791ebb13b
commit f7d1851418

View File

@@ -37,14 +37,18 @@ def handle_photos(request, parent_obj, photo_model, parent_field_name):
Список сообщений об ошибках (пустой список если все ок).
"""
errors = []
warnings = []
photos = request.FILES.getlist('photos')
if not photos:
return errors
if len(photos) > 10:
errors.append('Можно загрузить не более 10 фотографий.')
return errors
# МАКСИМУМ 10 ФОТО - сохраняем первые 10, остальные отклоняем
MAX_PHOTOS = 10
if len(photos) > MAX_PHOTOS:
warnings.append(f'Загружено {len(photos)} фото, но обработано только первые {MAX_PHOTOS}. '
f'Максимум {MAX_PHOTOS} фото на товар.')
photos = photos[:MAX_PHOTOS]
# Получаем максимальный order для этого родительского объекта
filter_kwargs = {parent_field_name: parent_obj}
@@ -70,4 +74,6 @@ def handle_photos(request, parent_obj, photo_model, parent_field_name):
photo_model.objects.create(**create_kwargs)
next_order += 1
# Добавляем warnings в errors для отображения пользователю
errors.extend(warnings)
return errors