Odoo 14如何为account.payment模块新增字段及报错排查
问题根源
报错核心原因是Python代码中错误定义了_inherit属性:
- 你连续写了两次
_inherit赋值,后面的_inherit = 'dte_school'会直接覆盖前面的_inherit = 'account.payment',导致你定义的AccountPayment类并没有扩展account.payment模型,自然account.payment模型中不存在term_number字段,视图加载时就会触发字段不存在的验证错误。 - 如果你没有特殊的多继承需求,给
account.payment加关联dte_school的字段,完全不需要继承dte_school模型,直接在继承account.payment的类中定义字段即可。
修正方案
1. 修正Python代码
将你的Python代码替换为以下内容:
from odoo import api, fields, models, _ class AccountPayment(models.Model): _inherit = 'account.payment' term_number = fields.Many2one('dte_school', string='学期编号')
提示:如果你的
dte_school是抽象模型,确实需要多继承,就把_inherit写为列表格式:_inherit = ['account.payment', 'dte_school'],不要分开写两次_inherit赋值。
2. 检查必要配置
- 确认你写这段Python代码的文件,已经在模块根目录的
__init__.py中导入,比如你的代码写在models/account_payment.py里,那模块根目录的__init__.py需要有from . import models,同时models目录下的__init__.py要有from . import account_payment - 重启Odoo服务
- 升级你的自定义模块
doc_dte_school
内容的提问来源于stack exchange,提问作者Abraham Kalungi
相关产品推荐
相关产品推荐

