当我尝试更改odoo中的license_id时,我收到此错误
@api.multi
@api.onchange('license_id')
def del_potential(self):
_logger.info('Status Approved or not' + str(self.license_id.approval_state))
_logger.info('Potential FGL' + str(self.partner_potential_fgl_address))
if self.license_id.approval_state == 'approved':
so = self.env['sale.order'].browse(id)
# _logger.info('del_potential id:'+str(so))
so.partner_potential_fgl_address = False
有人可以指导我为什么会收到此错误吗?
对不起,这应该是我的坏事
so = self.env['sale.order'].browse([self.id])
而不是
so = self.env['sale.order'].browse(id)
答案 0 :(得分:1)
应该是这样的,
@api.multi
@api.onchange('license_id')
def del_potential(self):
for rec in self:
_logger.info('Status Approved or not' + str(rec.license_id.approval_state))
_logger.info('Potential FGL' + str(rec.partner_potential_fgl_address))
if rec.license_id.approval_state == 'approved':
rec.partner_potential_fgl_address = False
这不是必需的,因为self包含可浏览记录集的列表,因此您不需要显式浏览任何ID ..
不要使用
so = self.env['sale.order'].browse([self.id])
改为使用
self.id or self.field_name