fix: Сохранять первые 10 фото, остальные отклонять с уведомлением
Изменено поведение handle_photos():
- Если загружено больше 10 фото, сохраняются первые 10
- Остальные отклоняются с warning сообщением
- Товар теперь ВСЕГДА создается (даже если больше 10 фото)
Это позволяет пользователю загрузить 11+ фото,
но система обработает только первые 10 и уведомит об этом.
🤖 Generated with Claude Code
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user