Python 如何消除odoo采购订单产品线中的重复产品?
在创建采购订单时,如果我添加两次相同的产品,它将创建两个不同的产品线,而不是更新相同产品的数量Python 如何消除odoo采购订单产品线中的重复产品?,python,python-2.7,odoo-8,odoo,Python,Python 2.7,Odoo 8,Odoo,在创建采购订单时,如果我添加两次相同的产品,它将创建两个不同的产品线,而不是更新相同产品的数量 请任何人帮助我。您可以创建一个继承自purchase.order.line的模型,并通过以下方式覆盖其创建功能: class purchase_order_line(models.Model): _inherits = 'purchase.order.line' @api.one def create(self, vals): same_line = self
请任何人帮助我。您可以创建一个继承自
purchase.order.line
的模型,并通过以下方式覆盖其创建功能:
class purchase_order_line(models.Model):
_inherits = 'purchase.order.line'
@api.one
def create(self, vals):
same_line = self.search([('product_id', '=', vals.get('product_id', False)),
('order_id', '=', vals.get('order_id', False))])
if same_line:
total_qty = same_line.product_qty + vals.get('product_qty', 0)
vals.update({
'product_qty': total_qty,
})
same_line.write(vals)
return same_line
else:
return super(purchase_order_line, self).create(vals)
这个代码是做什么的?奥多的哪个型号?创建采购订单时,它不会显示任何结果。您必须创建一个从
purchase.order.line
继承的新模型。我将编辑答案,向您展示如何操作。只有在您按下purchase.order
表单的“保存”按钮后,这项操作才会起作用。添加新行后,如果不保存,您将无法看到添加内容。是的,我创建了一个单独的.py文件,然后放入了您的代码,并与您在前面的评论中所说的完全相同。我认为应用这些行的最佳位置是create
函数purchase.order
并检查与purchase.order.line
相关的One2many字段(而不是直接重写purchase.order.line
create方法)