Odoo10库存导入报错:字段‘Inventories’规格不明确咨询
解决Odoo 10库存调整导入的"Ambiguous specification for field 'Inventories'"错误
这个错误本质上是Odoo在解析你的导入文件时,搞不清楚你要关联的是哪一个库存调整(Inventory)记录——从第2到572行的内容里,你用了多种方式指定库存调整,或者重复的标识导致了冲突。结合你给出的导入列信息,我来帮你拆解问题和解决步骤:
错误原因分析
你导入文件里的Inventories/product、Inventories/Checked quantities这种嵌套列命名,加上同时指定了id列(值为stock.stock_inventory_3),会让Odoo误以为你在多行里要创建/关联多个不同的库存调整,但实际上你应该是想把所有明细行绑定到同一个库存调整(比如那个Initial Inv...的库存)。这种混乱的字段指定方式触发了Odoo的校验逻辑,它要求你对每个库存调整只能用一种标识方式(外部ID、名称或数据库ID),且不能在多行里重复冲突指定。
具体解决方案
根据你的需求分两种情况处理:
情况1:给已有的库存调整(比如stock.stock_inventory_3)添加明细行
- 清理冲突列:删掉
Inventories/product和Inventories/Checked quantities这两列——这些列的命名方式会误导Odoo,让它认为你要单独指定库存调整的属性,而不是绑定明细行。 - 统一库存调整标识:确保所有行的
id列都填stock.stock_inventory_3(或者只在第一行填,后面的行留空,Odoo会自动继承),不要同时填name列(比如Initial Inv...),避免多种标识冲突。 - 保留正确的明细列:保留
line_ids/product_id/id、line_ids/product_qty、line_ids/location_id/id、line_ids/product_uom_id/id这些列,每一行对应一个产品的库存调整明细,都会关联到你指定的那个库存调整上。
情况2:创建新的库存调整并包含所有明细行
- 只在第一行指定库存调整信息:在第一行的
name列填你的库存调整名称(比如Initial Inventory),不要填id列(除非你提前定义了外部ID),后面所有行的name和id列留空。 - 用正确的明细字段前缀:所有产品明细相关的列都用
line_ids/xxx的格式,比如line_ids/product_id/id对应产品外部ID,line_ids/product_qty对应调整数量,不要用Inventories/xxx这种格式。 - 避免重复标识:确保整个导入文件里,同一个库存调整只被指定一次(第一行),后面的明细行自动关联到这个新创建的库存调整。
测试建议
先拿出2-3行数据按照上面的格式修改后测试导入,确认没有错误后再导入全部572行数据,这样能快速定位可能的格式问题。
正确的导入列示例
| id | name | line_ids/product_id/id | line_ids/product_qty | line_ids/location_id/id | line_ids/product_uom_id/id |
|---|---|---|---|---|---|
| stock.stock_inventory_3 | Initial Inventory | product.product_1 | 100 | stock.stock_location_stock | product.uom_unit |
| product.product_2 | 50 | stock.stock_location_stock | product.uom_unit |
内容的提问来源于stack exchange,提问作者Asmaa Samir
相关产品推荐
相关产品推荐

