如何覆盖odoo10中销售订单的取消链接方法
您好,我尝试覆盖销售订单行的取消链接方法。已调用函数,但未删除raise USERROR验证 Odoo默认功能:如何覆盖odoo10中销售订单的取消链接方法,odoo,odoo-10,unlink,raiserror,Odoo,Odoo 10,Unlink,Raiserror,您好,我尝试覆盖销售订单行的取消链接方法。已调用函数,但未删除raise USERROR验证 Odoo默认功能: @api.multi def取消链接(自): 如果自过滤(lambda x:x.state in('sale','done'): raise USERROR(\无法删除销售订单行。\n取消更改并尝试将数量设置为0)。) return super(SaleOrderLine,self).unlink() 自定义覆盖功能: @api.multi def取消链接(自): 如果自过滤(la
@api.multi
def取消链接(自):
如果自过滤(lambda x:x.state in('sale','done'):
raise USERROR(\无法删除销售订单行。\n取消更改并尝试将数量设置为0)。)
return super(SaleOrderLine,self).unlink()
自定义覆盖功能:
@api.multi
def取消链接(自):
如果自过滤(lambda x:x.state in('sale','done'):
通过
返回super(test,self).unlink()
提前感谢。当您继承模型并重写方法时。你叫超级奥多,继续改变 在您的情况下,意味着odoo调用
您的方法-->sale.order方法-->models.Model方法
据我所知,您希望通过验证意味着您不希望odoo调用unlink您的unlink方法-->models。Model unlink
不要使用超级尝试这个我认为它应该工作,如果没有我会显示其他解决方案
return models.Model.unlink(self)
正如Cherif所建议的,您可以绕过
super
继承工作流中的任何步骤在您的情况下,如果要直接调用
models.Model unlink
方法,请尝试以下方法:
@api.multi
def unlink(self):
if self.filtered(lambda x: x.state in ('sale', 'done')):
pass
return super(models.Model, self).unlink()
类似的情况也在本文中讨论过
希望这能回答你的问题