Odoo报错‘The transaction is cancelled commands are ignored’原因及解决
报错原因及解决方法
报错原因
- 字段名称不匹配:你在
res.partner继承模型里定义的布尔字段是bool_chauffeur,但在chauffeur_id的domain筛选条件里写成了est_chauffeur,Odoo无法识别不存在的字段,导致数据库查询异常,触发事务取消的报错。 - 冗余参数:
Many2one字段的第一个参数已经是关联模型res.partner,不需要重复指定comodelname='res.partner',冗余参数可能引发额外的解析问题。
解决方法
修改logistique.suivi.constats模型中的chauffeur_id字段定义,修正domain里的字段名并移除冗余参数:
from odoo import models, fields, api class estChauffeur(models.Model): _inherit = 'res.partner' bool_chauffeur = fields.Boolean('EstChauffeur', default=False) class suiviDesConstats(models.Model): _name = 'logistique.suivi.constats' chauffeur_id = fields.Many2one('res.partner', domain=[('bool_chauffeur','=',True)])
修改后,重启Odoo服务并更新模块,即可正常筛选bool_chauffeur=True的司机数据,事务报错也会消失。
内容的提问来源于stack exchange,提问作者djouher
相关产品推荐
相关产品推荐

