Добавление более одного пользовательского заказа в сессию сумки - Django приложение для электронной коммерции

Я создаю Django-приложение для электронной коммерции. Я реализовал возможность оставлять пользовательский заказ на сайте, чтобы пользователи могли обновлять количество, удалять пользовательский заказ и оформлять заказ. Сейчас я пытаюсь рефакторить код, чтобы позволить пользователям размещать в сумке более одного пользовательского заказа. В настоящее время происходит так, что второй заказ заменяет первый заказ в сумке.

файлcontext.py

 if 'custom_order' in bag:
        custom_order_id = bag['custom_order'] 
        custom_order = CustomOrder.objects.get(pk=custom_order_id)
        if 'quantity' in bag:
            total += bag['quantity'] * custom_order.price
            individual_total = bag['quantity'] * custom_order.price
            bag_items.append({
                'product_id': custom_order.product_id,
                'custom_order_id': custom_order_id,
                'category': custom_order.category,
                'material': custom_order.material,
                'individual_total': individual_total,
                'quantity': bag['quantity'],
                'product_name': custom_order.product_name,
                'price': custom_order.price,
         })
        else:
            total += custom_order.price
            bag_items.append({
                'product_id': custom_order.product_id,
                'custom_order_id': custom_order_id,
                'category': custom_order.category,
                'material': custom_order.material,
                'individual_total': custom_order.price,
                'quantity': 1,
                'product_name': custom_order.product_name,
                'price': custom_order.price,
            })

Мой вид, где я добавляю в сумку:

def add_custom_order_to_bag(request, custom_order_id):
    """Add custom order to the shopping bag """
    custom_order = CustomOrder.objects.get(pk=custom_order_id)
    bag = request.session.get('bag', {})
    
    bag['custom_order'] = custom_order_id
   
    request.session['bag'] = bag
    return redirect(reverse('view_bag'))

Я попробовал добавить список в представление для обработки нескольких пользовательских заказов, что казалось правильным, но мой контекст жаловался на получение списка в качестве custom_order_id, и я не был уверен, как распаковать его, чтобы контекст обрабатывал несколько custom_order_id.

Вернуться на верх