Odoo14使用base_locations的city字段报readonly修饰符解析错误如何解决
问题解答
1. 错误指向的解析阶段
该错误发生在Odoo前端表单视图的字段修饰符(modifiers)注册解析阶段,具体是基础渲染器(basic_renderer)初始化字段部件前,解析字段绑定的readonly、invisible、required这类修饰规则的环节,还未进入实际UI渲染步骤。
2. 术语指代
- field type(字段类型):指Odoo前端解析domain表达式时,需要用到的domain内关联字段的数据类型(如char、many2one、integer等),前端无法识别对应字段类型时就会抛出该错误。
- domain(过滤规则):指base_locations模块给city字段预设的
readonly修饰符绑定的条件过滤表达式,通常该规则会依赖国家、省州这类关联字段的取值,判断city字段是否为只读状态。
3. 排查解决步骤
- 首先检查自定义模型的字段定义:base_locations给city字段绑定的readonly domain通常依赖
country_id(国家)、state_id(省/州)两个关联字段,如果你的自定义模型没有定义这两个字段,补充定义即可。 - 如果不需要base_locations预设的只读规则,可以在视图中手动覆盖字段属性,清空预设domain:
<field name="city" readonly="0" domain="[]"/> - 确认自定义模块的
__manifest__.py中depends列表已明确加入base_locations,避免模块加载顺序异常导致city字段属性未被正确继承。 - 所有调整完成后,升级自定义模块、清空Odoo后端缓存和浏览器缓存,重新加载页面验证。
内容的提问来源于stack exchange,提问作者user1632812
相关产品推荐
相关产品推荐

