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即可
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)