Odoo13 添加One2many字段升级模块报inverse name错误咨询
问题原因及对应解决方案
1. 核心依赖导入缺失
你当前comite technique模块的models.py只导入了calendar库,代码中用到的api、fields、models三个Odoo核心对象没有导入,是最直接的报错触发原因。
解决方案:在models.py头部添加导入语句:
from odoo import api, fields, models import calendar
2. 日期类型处理逻辑错误
_get_day_of_date方法中对Date类型的date字段使用了fields.Datetime.from_string()方法处理:Odoo的Date字段返回的是原生date对象,不是字符串,也不需要用Datetime类的方法转换,类型不匹配会触发运行时错误。
解决方案:修改onchange方法逻辑:
@api.onchange('date') def _get_day_of_date(self): for r in self: if r.date: r.jour = calendar.day_name[r.date.weekday()]
3. 模块依赖配置错误
如果initiative.promoteur和initiative.comitetechnique两个模型分属不同的Odoo模块,需要在comite technique模块的__manifest__.py配置文件的depends列表中,添加promoteurs模型所属模块的技术名称,否则Odoo升级时找不到关联的initiative.promoteur模型,会触发字段创建失败报错。
示例配置(假设promoteurs所在模块技术名为initiative_promoteur):
'depends': ['base', 'initiative_promoteur'],
4. 模块升级顺序错误
需保证先升级promoteurs所在的模块,确认comite_idMany2one字段已经成功写入数据库后,再升级comite technique模块。
内容的提问来源于stack exchange,提问作者byul
相关产品推荐
相关产品推荐

