Dtcloud 的异样抛出往往令人摸不着头脑,本文记录了一些自己在应用过程中遇到的一些异样以及解决的形式,配上异样截图不便日后能够”按图索骥”。目前所记录的问题可能还比拟全面,日后还当欠缺。以下是注释:
剖析异样:模型 dtb.air.base 继承了不存在的模型 dtb.equipment.list 解决形式:模块的 __manifest__.py 文件的 depends 字段中增加模型 dtb.equipment.list 所在模块包名。
剖析异样:报错提醒模型 dtb.energy.base 中 sbomp_park_code 字段 related 参数援用的字段不存在。解决形式:自行决定增加 related 参数援用的字段或删除 sbomp_park_code 字段。
剖析异样:简略的 KeyError 异样,很难一眼看出哪里的问题,惟一的提醒就是 dtb_energy_report_id。
追踪到出异样的代码,是一个 One2many 字段加载呈现了问题,即模型中的相干字段加载呈现了问题,按图索骥找到 dtb_energy_report_id 对应的字段。
One2many 实例化的 inverse_name 参数必须是 comodel_name 中已存在的。解决办法:批改使得 One2many 的 inverse_name 参数存在于 dtb.energy.report.line 中。
剖析异样:乍一看同上一个问题相似,但并不是,标红处是在加载时执行的办法,能够看出环境变量中缺失对应的模型类。解决办法:模块的 __manifest__.py 文件的 depends 字段中增加模型 dtb.measurement.level 所在模块包名。
剖析异样:同是 KeyError 异样,这里是模型未加载胜利,咱们能够在重启的日志中发现问题
很显著就是__manifest__.py 文件的依赖写错导致了本模块未加载胜利。解决办法:增加缺失的逗号即可。
剖析异样:注册核心不存在模型 dtb.car,就是模型没有被注册,通常是缺失对应的模块依赖。解决办法:模块的 __manifest__.py 文件的 depends 字段中增加模块名 dtb_car。
剖析异样:加载 xml 文件找不到对应模型,即模型未注册,个别是依赖问题。解决形式:模块的 __manifest__.py 文件的 depends 字段中增加依赖名。
剖析异样:数据模块呈现的异样,在 data 目录下的 xml 文件中,一个模型 id 进行创立或更新记录时找到了不同的 dtb.equipment.list 记录,xml 文件中可能存在雷同的 id 解决形式:批改 record 标签中的 id,使得每个都是繁多不反复的。
作者:吴超