Django中update_or_create方法
在项目中需要根据商品规格ID去判断到底是修改 删除 还是新增规格
和前端约定为 新增的规格 传0
obj, create =models.CommodityInventory.objects.update_or_create( inventory_id=key["inventory_id"], defaults={ "colour": key["colour"], # 规格名称 "bazaar": key["bazaar"], # 市场价 "price": key["price"], # 价格 "number": key["number"], # 库存 } )
结果报错 ValueError: The database backend does not accept 0 as a value for AutoField.
原因是0不能作为自增字段的值
奇怪......描述是inventory_id作为筛选条件 如果查找不到就新建 使用defaults的键值 按理来说没问题 但是报错明显是在创建的时候使用了这个键值对
点进去 发现确实是 创建的时候也用到了上述的用来筛选的的字段
询问组长后解决inventory_id=key["inventory_id"] if key["inventory_id"] else None
直接传None即可