微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Odoo - 在 python 中使用 onchange 事件在 field 元素上设置“invisible”或“required”属性

如何解决Odoo - 在 python 中使用 onchange 事件在 field 元素上设置“invisible”或“required”属性

几周前我刚刚开始使用 odoo,我正在尝试根据用户自动完成中选择的公司,在表单中设置各种字段的属性,特别是不可见和必需的。我可以使用 fields_view_get 获取字段节点并设置属性,但视图不会更新以反映新设置。有没有我缺少的额外套装?谢谢!下面是我的代码片段。

@api.onchange('company_type')
def onchange_company_type(self,view_id=None,view_type='form',toolbar=False,submenu=False):
    res = super(Partner,self).fields_view_get(view_id=view_id,view_type=view_type,toolbar=toolbar,submenu=False)
    if ((self.company_type) and ('CompanyA' in self.company_type.name)):
        doc = etree.XML(res['arch'])
        for node in doc.xpath("//field[@name='field_a']"):
                node.set("required","1")
                modifiers = json.loads(node.get("modifiers"))
                modifiers['required'] = 1
                node.set("modifiers",json.dumps(modifiers))
        res['arch'] = etree.tostring(doc)
    return res

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。