Search code examples
pythondjangoview

There is error when trying to make order in django


When I try to order something, I keep getting this error:

enter image description here

Here is my views.py

    if not request.user.is_authenticated:
    session = request.session
    cart = session.get(settings.CART_SESSION_ID)
    del session['cart']
else:
    customer = request.user.customer
    order, created = Order.objects.get_or_create(
        customer=customer, complete=False)

    order_product, created = OrderProduct.objects.get_or_create(
        order=order, )
    order.save()
messages.success(request, 'Заказ успешно оформлен. Проверьте свою электронную почту!!!')
return redirect('product_list')

Please can anyone help me to fix this error?


Solution

  • if not request.user.is_authenticated:
        session = request.session
        cart = session.get(settings.CART_SESSION_ID)
        if cart is not None:
            del session[settings.CART_SESSION_ID]
    else:
        customer = request.user.customer
        order, created = Order.objects.get_or_create(
            customer=customer, complete=False)
    
        order_products = OrderProduct.objects.filter(order=order)
        if order_products:
            order_product = order_products[0]
        else:
            order_product = OrderProduct.objects.create(order=order)
    
        order.save()
        messages.success(request, 'Заказ успешно оформлен. Проверьте свою электронную почту!!!')
        session = request.session
        cart = session.get(settings.CART_SESSION_ID)
        if cart is not None:
            # Remove cart items from the session
            del session[settings.CART_SESSION_ID]
            session.modified = True
      
    return redirect('product_list')