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 = []
|
errors = []
|
||||||
|
warnings = []
|
||||||
photos = request.FILES.getlist('photos')
|
photos = request.FILES.getlist('photos')
|
||||||
|
|
||||||
if not photos:
|
if not photos:
|
||||||
return errors
|
return errors
|
||||||
|
|
||||||
if len(photos) > 10:
|
# МАКСИМУМ 10 ФОТО - сохраняем первые 10, остальные отклоняем
|
||||||
errors.append('Можно загрузить не более 10 фотографий.')
|
MAX_PHOTOS = 10
|
||||||
return errors
|
if len(photos) > MAX_PHOTOS:
|
||||||
|
warnings.append(f'Загружено {len(photos)} фото, но обработано только первые {MAX_PHOTOS}. '
|
||||||
|
f'Максимум {MAX_PHOTOS} фото на товар.')
|
||||||
|
photos = photos[:MAX_PHOTOS]
|
||||||
|
|
||||||
# Получаем максимальный order для этого родительского объекта
|
# Получаем максимальный order для этого родительского объекта
|
||||||
filter_kwargs = {parent_field_name: parent_obj}
|
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)
|
photo_model.objects.create(**create_kwargs)
|
||||||
next_order += 1
|
next_order += 1
|
||||||
|
|
||||||
|
# Добавляем warnings в errors для отображения пользователю
|
||||||
|
errors.extend(warnings)
|
||||||
return errors
|
return errors
|
||||||
|
|||||||
Reference in New Issue
Block a user