You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用django-shopping-cart提交订单时出现'SessionStore'无'cart'属性错误

解决'SessionStore' object has no attribute 'cart'错误

问题原因

你直接通过request.session.cart访问购物车是错误的,django-shopping-cart库不会把cart直接挂载到request.session属性上,需要通过库提供的Cart类来实例化获取购物车对象。

修正后的Views.py代码

from django_shopping_cart.cart import Cart
import requests
from django.shortcuts import render

def postCommande(request):
    # 正确实例化购物车对象
    cart = Cart(request)
    # 收集所有商品数据
    products = []
    for item in cart.items:  # 若库版本要求调用方法则改为cart.items()
        product_data = {
            'date': '23-09-22 00:00:00',
            'nameclient': request.POST['name'],
            'type': item.product.type  # 替换为你商品实际的类型字段
        }
        products.append(product_data)
    
    data = {'products': products}
    url = 'http://myapi/products/postCommande'
    requests.post(url, json=data)
    
    # 可选:提交后清空购物车
    # cart.clear()
    
    return render(request, 'panier/succes.html')

关键修正点

  • 导入Cart类,通过Cart(request)获取合法的购物车实例,替代错误的request.session.cart访问方式
  • 遍历购物车的items属性(或items()方法,依库版本调整)获取商品
  • 优化数据提交逻辑,一次性收集所有商品后发送API请求(若需单商品单独提交,可将请求放回循环内)

内容的提问来源于stack exchange,提问作者Khalifa

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 16:42:51