问题描述
我是odoo的新手。我正在使用odoo 13,我有一个many2one字段和一个many2many字段,并且在many2one字段上具有域。 我需要的是,如果用户更改了many2one字段,many2many将变空并可以选择。 但是我不知道如何在函数上编写代码,所以我尝试了一些变体,但是我没有想到。 如果使用此功能,则当我第一次选择“工业”字段时,我会得到一个错误
class Partner(models.Model):
_inherit = 'res.partner'
industria = fields.Many2one('industria_model',string="Industria")
marca = fields.Many2many('marca_model',domain="[('industria_id','=',industria)]",string="marca")
@api.onchange('industria')
def get_price(self):
self.marca = [(5)]
# if self.marca:
# self.marca = [(5,0)]
解决方法
[(5)]
将被评估为[5]
,然后Odoo将尝试返回尚未创建的对应记录(第一次),并且您应该看到以下错误:
Record does not exist or has been deleted. (Record: marca_model(5,),
您可以简单地使用[(5,)]
来清空marca
字段。
如果数据库中存在ID为5的记录,您将获得与使用[(4,5)]
最后我用了这个
@api.onchange('industria')
def change_brand(self):
self.marca = [(6,[])]
我已经对其进行了测试,但是我不得不重新启动odoo才能看到所做的更改,只是更新模块无法正常工作