From 9e663eaeb8589a308addf0e9afc2993a14cc77a9 Mon Sep 17 00:00:00 2001 From: Andrey Smakotin Date: Tue, 9 Dec 2025 00:03:06 +0300 Subject: [PATCH] =?UTF-8?q?=D0=94=D0=B8=D0=BD=D0=B0=D0=BC=D0=B8=D1=87?= =?UTF-8?q?=D0=B5=D1=81=D0=BA=D0=BE=D0=B5=20=D1=81=D0=BE=D0=B7=D0=B4=D0=B0?= =?UTF-8?q?=D0=BD=D0=B8=D0=B5=20=D1=84=D0=BE=D1=80=D0=BC=D1=81=D0=B5=D1=82?= =?UTF-8?q?=D0=B0=20=D1=81=20=D0=BD=D1=83=D0=B6=D0=BD=D1=8B=D0=BC=20=D0=BA?= =?UTF-8?q?=D0=BE=D0=BB=D0=B8=D1=87=D0=B5=D1=81=D1=82=D0=B2=D0=BE=D0=BC=20?= =?UTF-8?q?=D1=84=D0=BE=D1=80=D0=BC=20=D0=B4=D0=BB=D1=8F=20=D1=87=D0=B5?= =?UTF-8?q?=D1=80=D0=BD=D0=BE=D0=B2=D0=B8=D0=BA=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- myproject/orders/views.py | 36 ++++++++++++------------------------ 1 file changed, 12 insertions(+), 24 deletions(-) diff --git a/myproject/orders/views.py b/myproject/orders/views.py index db49095..3586610 100644 --- a/myproject/orders/views.py +++ b/myproject/orders/views.py @@ -137,32 +137,20 @@ def order_create(request): # Создаем formset с предзаполненными товарами из черновика if draft_items: + from django.forms import inlineformset_factory from products.models import Product, ProductKit - initial_formset_data = [] - for item in draft_items: - item_data = { - 'quantity': item['quantity'], - 'price': item['price'], - 'is_custom_price': False, - } - - if item['type'] == 'product': - try: - product = Product.objects.get(id=item['id']) - item_data['product'] = product.id - initial_formset_data.append(item_data) - except Product.DoesNotExist: - pass - elif item['type'] in ['kit', 'showcase_kit']: - try: - kit = ProductKit.objects.get(id=item['id']) - item_data['product_kit'] = kit.id - initial_formset_data.append(item_data) - except ProductKit.DoesNotExist: - pass - - formset = OrderItemFormSet(initial=initial_formset_data) + # Создаём формсет с нужным количеством extra форм + DraftOrderItemFormSet = inlineformset_factory( + Order, + OrderItem, + form=OrderItemForm, + extra=len(draft_items), # Создаём столько форм, сколько товаров + can_delete=True, + min_num=0, + validate_min=False, + ) + formset = DraftOrderItemFormSet() else: formset = OrderItemFormSet()