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

Django访问购物车添加接口报错:add()收到意外关键字参数override_quantity

报错原因

这个错误是你调用Cart类的add()方法时传入了override_quantity关键字参数,但你定义Cart类的add()方法时没有声明接收这个参数导致的。
从你提供的代码可以看到,在views.py的cart_add视图中,你写的调用代码为:

cart.add(product=product, quantity=cd['quantity'], override_quantity=cd['override'])

你在这里传入了三个参数,但你实现的Cart类add方法只接收product、quantity两个参数,没有预留override_quantity的参数位置,因此Python会抛出参数不匹配的错误。

解决方案

你可以根据自己的业务需求选择以下任意一种方式修复:

方案1:修改Cart类的add方法,新增override_quantity参数

找到你定义Cart类的文件(通常是cart应用下的cart.py),修改add方法的定义,添加对应参数以及相关业务逻辑:

# 原add方法定义类似:
# def add(self, product, quantity):
# 修改为以下形式,根据业务需要设置默认值
def add(self, product, quantity, override_quantity=False):
    # 原有逻辑保持不变,新增override_quantity的处理逻辑即可
    # 示例逻辑:override_quantity为True则直接覆盖商品原有数量,否则累加数量
    if override_quantity:
        self.cart[product.id]['quantity'] = quantity
    else:
        self.cart[product.id]['quantity'] += quantity

方案2:删除调用时传入的多余参数

如果你暂时不需要覆盖商品数量的功能,直接修改views.py里的调用代码,去掉多余的override_quantity参数即可:

# 修改后的调用代码
cart.add(product=product, quantity=cd['quantity'])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 04:54:09