From f7d1851418c668fb89cc88b67d7b528e580a93f6 Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Sat, 15 Nov 2025 11:20:51 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D0=A1=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D1=8F=D1=82=D1=8C=20=D0=BF=D0=B5=D1=80=D0=B2=D1=8B=D0=B5=2010?= =?UTF-8?q?=20=D1=84=D0=BE=D1=82=D0=BE,=20=D0=BE=D1=81=D1=82=D0=B0=D0=BB?= =?UTF-8?q?=D1=8C=D0=BD=D1=8B=D0=B5=20=D0=BE=D1=82=D0=BA=D0=BB=D0=BE=D0=BD?= =?UTF-8?q?=D1=8F=D1=82=D1=8C=20=D1=81=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE?= =?UTF-8?q?=D0=BC=D0=BB=D0=B5=D0=BD=D0=B8=D0=B5=D0=BC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Изменено поведение handle_photos(): - Если загружено больше 10 фото, сохраняются первые 10 - Остальные отклоняются с warning сообщением - Товар теперь ВСЕГДА создается (даже если больше 10 фото) Это позволяет пользователю загрузить 11+ фото, но система обработает только первые 10 и уведомит об этом. 🤖 Generated with Claude Code --- myproject/products/views/utils.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/myproject/products/views/utils.py b/myproject/products/views/utils.py index 3f5e1a9..532f79d 100644 --- a/myproject/products/views/utils.py +++ b/myproject/products/views/utils.py @@ -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