本文基于13.0
由于开发需要,想要把hr模块中的address_home_id改成文本类型,本来以为很简单的事情,很快码好了代码,但是却发现后台报错了,直接导致了系统进入不了。
1 | File "/mnt/hgfs/codes/odoo/odoo-13.0/odoo/modules/registry.py", line 85, in new |
本来一度以为是13.0又变更了API,不支持通过继承的方式改变字段的类型了,后来google也没发现类似的错误,于是只跟踪debug。
1 | def _setup_related_full(self, model): |
输出日志发现
1 | --------- |
在setup addreess_home_id字段之后,又去setup了phone,这就有点微妙了。
后来,突然想到,address_home_id肯定是被别的字段做了关联引用,从而导致了一旦变更了本字段的类型,会导致之前代码中关联的字段不能正确挂载而导致报错。