【问题标题】:Products are not deleted from cart产品不会从购物车中删除
【发布时间】:2022-06-16 20:57:15
【问题描述】:

首先我的代码有错误,然后我在 StackOverflow 中询问。

然后有人帮我解决了这个错误。这是链接:get() returned more than one OrderProduct -- it returned 3 [第一个错误][1]

但我现在有一个新问题。

当有人订购产品时,产品不会从购物车中删除。我不知道为什么会这样。

但在第一次修复之前,产品已成功从购物车中删除。现在第一个错误已修复,但我面临第二个错误。请帮帮我,产品不会从购物车中删除。

我已经放了我的第一个错误的链接。 这是我修复第一个错误后的views.py:

def process_order(request):
    transaction_id = datetime.now().timestamp()
    data = request.POST

    name = data['name']
    email = data['email']
    phone = data['phone']
    address = data['address']
    city = data['city']
    state = data['state']
    zipcode = data['zipcode']

    if request.user.is_authenticated:
        customer = request.user.customer
        order, created = Order.objects.get_or_create(customer=customer, complete=False)
        shipping_info = ShippingAddress.objects.create(
            customer=customer,
            order=order,
            address=address,
            city=city,
            state=state,
            zipcode=zipcode
        )

        order_data = cart_data(request)
        cart_total_price = order_data['order'].cart_total_price
        cart_products_quantity = order_data['order'].cart_products_quantity
        products = order_data['products']
        product_list = ''
        for item in products:
            product_list += f'{item.product.name}: {item.quantity} шт. {item.total_price}\n\n'

    else:
        customer, created = Customer.objects.get_or_create(
            name=name,
            email=email,
            phone=phone
        )

        order, created = Order.objects.get_or_create(customer=customer, complete=False)
        shipping_info = ShippingAddress.objects.create(
            customer=customer,
            order=order,
            address=address,
            city=city,
            state=state,
            zipcode=zipcode
        )

        order_data = cart_data(request)
        cart_total_price = order_data['order']['cart_total_price']
        cart_products_quantity = order_data['order']['cart_products_quantity']
        products = order_data['products']
        product_list = ''

        for item in products:
            product_list += f'{item["product"]["name"]}: {item["quantity"]} шт. {item["total_price"]}\n\n'

    message_to_user = f"""Здраствуйте, {name}    
    
Ваш заказ (#{transaction_id}) принят на обработку.

Заказанные товары:

{product_list}

Общее количество товаров: {cart_products_quantity}
Обая стоимость товаров: {cart_total_price}

Для подтверждения заказа с вами свяжутся в ближайшее время. 
"""
    send_mail(
        'Оформление заказа',
        message_to_user,
        settings.EMAIL_HOST_USER,
        [email]
    )

    message_to_owner = f"""
Заказ #{transaction_id}

Заказанные товары: 


{product_list}

Общее количество товаров: {cart_products_quantity}
Общая стоимость товаров: ${cart_total_price}

Информация о покупателе: 

Имя: {name}
Email: {email}
Order: {order}
Телефон: {data['phone']}
Адрес: {data['address']}
Город: {data['city']}
Регион: {data['state']}
Индекс: {data['zipcode']}
"""
    send_mail(
        'Обработка заказа',
        message_to_owner,
        settings.EMAIL_HOST_USER,
        [settings.EMAIL_HOST_USER],
        fail_silently=True
    )
    

    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 = OrderProduct.objects.filter(order=order).first()

        if order_product is None:
            order_product = OrderProduct(order=order)
            order_product.delete()
        order.save().pop()
        messages.success(request, "Заказ успешно оформлен. Проверьте свою электронную почту!!!")
    return redirect("product_list")

'''

Please help me quickly:)

  [1]: https://stackoverflow.com/questions/72391555/get-returned-more-than-one-orderproduct-it-returned-3

【问题讨论】:

  • Ваш заказ (#{transaction_id}) принят на обработку. 不是有效的 python 代码
  • 我没听懂你,对不起

标签: python django cart


猜你喜欢
  • 1970-01-01
  • 2020-02-17
  • 2022-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多