' products.template'表我创建了三个字段宽度,长度和gsm。现在我想在' mrp'中检索它。 table.First我将从mrp物料清单中获取ID并将其分配给名为prod的变量。 ' mrp.bom.line'表包含产品id.So通过迭代器我想传递存储在mrp物料清单表中的产品的ID,以检索存储在product.template表中的宽度,长度和gsm的值。我收到错误programming error can't adapt type 'product.product'
。
@api.multi
def _compute_rim_weight(self):
bill_of_materials_id=[1,2,3]
prod = self.env['mrp.bom.line'].browse(bill_of_materials_id)
for i in prod:
j = self.env['product.template'].browse(i.product_id)
self.rim_weight = (j.width * j.length * j.gsm)/20000
return self.rim_weight
答案 0 :(得分:2)
在ODOO中,浏览 id 而非对象
所以只需用浏览(i。 product_id.id )替换浏览(i。 product_id ),如下所示:
j = self.env['product.template'].browse(i.product_id.id)
如果product.template
与model :mrp.bom.line
的{{1}}有**很多关系**,我还有另一件事,你甚至不需要调用浏览。
直接拨打 line.product_id.width , line.product_id.length , line.product_id.gsm ,如下所示:
@api.multi
def _compute_rim_weight(self):
bill_of_materials_ids=[1,2,3]
bom_lines = self.env['mrp.bom.line'].browse(bill_of_materials_ids)
for line in bom_lines:
self.rim_weight = (line.product_id.width * line.product_id.length * line.product_id.gsm)/20000
return self.rim_weight
@api.one
def _compute_rim_weight(self):
rim_weight =0
for line in self.bom_id.bom_line_ids:
rim_weight+ = (line.product_id.width * line.product_id.length * line.product_id.gsm)/20000
self.rim_weight =rim_weight