Добавление более одного пользовательского заказа в сессию сумки - 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.