Odoo是一套用Python编写的开源业务应用程序,根据AGPL许可证发布。它被全球370万用户用于管理各种规模的公司。主要的Odoo组件是服务器,270个核心模块(也称为官方模块)和大约15000个社区模块。
如何根据字段在 Odoo 16 中将所有表单字段设置为只读?
在 Odoo 16 中,我尝试根据同一表单的其他字段的值将表单视图中的所有字段设为只读。 首先我尝试了以下方法: 在 Odoo 16 中,我试图根据同一表单的其他字段的值将表单视图中的所有字段设为只读。 首先我尝试了以下方法: <xpath expr="//field" position="attributes"> <attribute name="attrs">{'readonly': [('my_field', '=', True)]}</attribute> </xpath> 没有结果。 我也不能使用 <form edit="false">,因为我必须检查字段值。 带有 <field name="perm_write">1</field> 的规则可以工作,但它的行为不符合我的需要,因为它允许您修改整个表单,直到您单击 Save 并获得权限错误。 并且覆盖 get_view 不是有效的选项,因为不能依赖于 my_field 值。 我能找到的唯一解决方案是使用 xpath 修改表单的每个字段,这非常令人不安,并且如果将来通过其他应用程序将更多字段添加到表单视图中,则不一致。 有没有人有更好的解决方案? 延长get_view实际上是一个好主意。 OCA 的 server-ux repo 中有一个模块,其中完成了类似的操作:当将某些内容保存在 one2many 字段中时,表单视图中的每个字段都将设置为只读。为此,需要重写每个字段的 readonly 修饰符。 模块:base_tier_validation 代码中有趣的部分:get_view 代码摘录: @api.model def get_view(self, view_id=None, view_type="form", **options): res = super().get_view(view_id=view_id, view_type=view_type, **options) View = self.env["ir.ui.view"] # Override context for postprocessing if view_id and res.get("base_model", self._name) != self._name: View = View.with_context(base_model_name=res["base_model"]) if view_type == "form" and not self._tier_validation_manual_config: # ... other stuff # interesting part: for node in doc.xpath("//field[@name][not(ancestor::field)]"): if node.attrib.get("name") in excepted_fields: continue modifiers = json.loads( node.attrib.get("modifiers", '{"readonly": false}') ) if modifiers.get("readonly") is not True: modifiers["readonly"] = OR( [ modifiers.get("readonly", []) or [], self._get_tier_validation_readonly_domain(), ] ) node.attrib["modifiers"] = json.dumps(modifiers) res["arch"] = etree.tostring(doc) res["models"] = frozendict(all_models) return res
ModuleNotFoundError:没有名为“odoo”的模块
我已经安装了 odoo14 windows 并将其配置为 pycharm,但是当我尝试自定义 .py 文件中的任何内容时,更新没有发生,当我运行该文件时显示以下错误 ...
我正在定制 Odoo,并且遇到了 sale_line_id 字段的问题。 我在自定义模块(wsl_available_drivers)中继承了project.task模型。鉴于,我需要做...
我正在尝试扩展 Odoo 16 中的日历视图,特别是“弹出窗口”。我已遵循各种步骤和指南,但不断遇到以下错误: odoo.tools.convert.ParseError: while
我需要在报告的标题面板中添加一个新按钮,但它不起作用。下面的代码允许模块更新而不会出现错误,但是当我查看报告页面时,它就完成了......
我的目标是添加一个新的 state_selection 小部件(与项目模块任务的看板视图中存在的小部件相同),具有三 (3) 个选项/颜色: 灰色的 橙色...
我目前在 Odoo 网站上的结账流程中遇到问题。当客户尝试结账时,他们不会进入付款方式选择页面,而是会被重定向到...
我目前在 Odoo 中遇到图像和视频附件问题。每当我附加高分辨率的图像或视频时,它都会自动压缩,并且其大小显着变红......
我想将多种语言写入 ir.ui.view 对象的 arch_db 字段。 但是,如果我提供一个 dict/json 值,其中语言作为键,HTML 作为值 ({"de_DE"=> 我想将多种语言写入 ir.ui.view 对象的 arch_db 字段。 但是,如果我提供一个 dict/json 值,其中语言作为键,HTML 作为值 ({"de_DE"=><german-html>, "en_US"=><american-html>}),验证将失败。 如果我先使用 de_DE 上下文编写 html,然后使用 en_US 上下文编写 html,则两种语言的后者都会覆盖前者。 如何为不同的语言编写不同的 HTML? 有没有例如有什么方法可以通过 RPC 调用 update_raw 吗? 提供不同语言的 HTML 页面的一种常见、有效且安全的方法是在服务器端翻译内容。如果您选择这种方法,您可以确保根据用户的语言首选项或设置动态提供翻译内容。
我在 Odoo 版本 15.0+e 中有一个动态邮件列表 我想排除邮政编码以 K 开头的所有联系人。 使用调试模式,我按照以下方式在编辑器中设置代码...
Odoo 12,尝试编辑 sale.order.line 时出现 CacheMiss 错误
假设我有两行产品,我删除其中一行,然后添加具有不同产品的新行,保存订单后系统返回以下错误。 服务器应用程序
我正在从外部源(在线 xml 请求)创建采购订单。 当我循环遍历每个订单时,我创建了一个采购订单,然后我循环遍历了产品并为每个订单创建了一个订单行...
我正在使用 minikube 和 Helm。我想从这个仓库安装odoo:https://artifacthub.io/packages/helm/bitnami/odoo 到目前为止,我已经根据文档运行了以下命令:helm i...
我正在使用 minikube 和 helm,我想从这个仓库安装 odoo:https://artifacthub.io/packages/helm/bitnami/odoo 到目前为止,我已经根据文档运行了以下命令:helm in...
我是 Odoo 用户(不是开发人员)。 我有一个有 2 个错误的自定义模块,我试图了解如何修复错误,但我找不到解决方案。我认为感兴趣的代码在模型文件中。 模块,由 barc...
为什么我的One2many字段在升级模块后报错,重启服务器后错误就消失了?
我有一个 one2many 字段给我这个错误: AttributeError: '_unknown' object has no attribute 'id' 当我尝试创建新记录时,重新启动服务器后错误消失并且仅 ap...
使用 Odoo 17,我使用一些自定义字段扩展了 res.partner 模型: 类 ResPartner(models.Model): _inherit = 'res.partner' is_farmer = fields.Bool() ... 我想要条件...
我正在尝试使用以下请求创建发票。 Q#1 虽然我可以看到在 Odoo 上创建了发票,但并未应用税费。 我理解了 : 发票行的产品有...
odoo 14 - 在 Windows 上:RTL rtlcss 方向 > 解决方案在这里
1 - 从官方网站安装 Node js:www.nodejs.org 2 - 打开cmd并运行:npm install -g rtlcss 3 - 转到:C:\Users("User Here")\AppData\Roaming 下午 | 将所有文件和目录复制到...