当 xml 更改时,Odoo 模板页面不会更新

2024-01-23

刚刚为客户启动 Odoo,我在模板方面遇到了一个重大问题。

一个简单的模板,有一些 div 和标题。 我还有一个记录可以在主菜单中显示。

当我第一次创建它时,一切正常。 但是,如果我想添加或更改一些 html,这些更改不会显示在网站页面上(即使在我刷新/升级主题之后)。 网站构建器允许我更改文本等,但这不是我需要的。我希望能够从 XML 更改 html 结构。但是,一旦页面第一次创建......我就不允许这样做。该页面将仅显示最初创建的页面。

希望它是清楚的,并提前感谢您的帮助。

Joe


版本:Odoo 每晚 10.0-20170427

tl;dr

每次您使用网站构建器(添加片段、更改文本等)并保存时,Odoo 数据库中的数据记录都会被修改(显然 - 否则您的更改将不会持久)。

在此过程中,表“ir_model_data”中字段“noupdate”的值设置为false to true用于记录您的模板。只要将“noupdate”设置为true该模板的记录不会因模块上的升级操作而更改。

为了能够更改它,您必须将“noupdate”设置回false所以在升级过程中数据库中的模板将会被你的xml修改内容覆盖。请检查我的答案底部的警告!

我的类似问题

我遇到了类似的问题。像您一样,我创建了一个带有一些 html 标签的简单模块/模板,将其添加到 main_menu 并安装了该模块。一切都按预期进行(菜单链接可见并且显示了我的所有内容)。

<?xml version="1.0" encoding="UTF-8"?>
<odoo>
    <!-- === Page template === -->
    <template name="tpl-imprint" id="website.imprint" page="True">
        <t t-call="website.layout">
            <div id="wrap">
                <div class="container">
                    <div class="row">
                        <div class="col-xs-12">
                            <h1>some Header</h1>
                            <p>some text</p>
                        </div>
                    </div>
                    <!-- === Snippets' area === -->
                    <div class="row">
                        <div class="oe_structure" />
                    </div>
                </div>
            </div>
        </t>
    </template>
    <!-- === Menu item === -->
    <record id="menu_imprint" model="website.menu">
        <field name="name">Imprint</field>
        <field name="url">/page/imprint</field>
        <field name="parent_id" ref="website.main_menu" />
        <field name="sequence" type="int">100</field>
        <field name="website_id" type="int">1</field>
    </record>
</odoo>

之后,我进一步修改了 xml 文件,添加了一些文本等,升级了模块,一切都按预期工作。 然后我在自己创建的页面上使用网站构建器进行了一些实验,添加了一些片段并保存。 然后我意识到我的 xml 中有一些拼写错误,所以我转到编辑器,修复了它们,升级了模块,并且 - 与预期不同 - 我的视图没有得到修改。

由于我对 Odoo 相当陌生,还没有真正深入了解 Odoo 在后端如何工作,而且我在 google 上找不到任何好的东西,所以我开始分析升级过程中数据库发生的情况以及通过使用网站构建器。我发现,虽然仅使用升级来上传我的更改,但只有表“ir_ui_view”的字段“arch_db”被更改为相关记录。但是,通过使用网站构建器,不仅模板内容被写入“ir_ui_view”,而且表“ir_model_data”中相关记录的字段“noupdate”也被更改 - 它是从false to true(数据库可能发生了更多更改,但提到的都是与问题相关的更改)。

如何使升级过程再次运行

为了解决升级问题,我简单地将“noupdate”的值改回为true升级过程再次起作用。 (每次将网站构建器与自定义模板之一一起使用时,您都必须执行此操作 - 至少如果您想再次通过 xml 对模板进行更改)。

在手动更改数据库之前先对其进行备份!(我已经在我的数据库中测试/使用了这些 sql 行,但仍然没有保证;))

在“ir_ui_view”中查找模板的model_data_id

select
    model_data_id
from
    ir_ui_view
where
    name = '<the name of your template - in my case tpl-imprint>';

使用该 ID 查找/更新表“ir_ui_data”中的相关记录

update
    ir_model_data
set
    noupdate = true
where
    id = <the ID you got with the first query>

完毕!尝试升级您的模块。您对 xml 的更改现在应该存储在数据库中。


您还可以一步更改该值

update
    ir_model_data
set
    noupdate = false
where
    id in(
        select
            model_data_id
        from
            ir_ui_view
        where
            name = '<the name of your template - in my case tpl-imprint>'
    );

!!!警告 !!!!

如果您将“noupdate”设置为 false,则您使用网站构建器所做的所有更改都将在升级过程中丢失。如果您想保留它们,您必须将修改复制粘贴到 xml 中的模板中!为此,请转到要从中获取内容的页面上的“自定义/HTML 编辑器”,然后将要保留的部分复制粘贴到 xml 中。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

当 xml 更改时,Odoo 模板页面不会更新 的相关文章

随机推荐

  • 使用相同的内部表示和最少的样板处理多种类型?

    我发现自己在用 Haskell 编写大型程序时经常遇到一个问题 我发现自己经常想要多个不同的类型共享内部表示和几个核心操作 有两种相对明显的方法可以解决这个问题 一种是使用类型类 GeneralizedNewtypeDeriving扩大 将
  • SOAP 和 HTTP 协议的区别?

    SOAP 和 HTTP 协议有什么区别 当我们说 SOAP over HTTP 时 这是什么意思 您可以通过 HTTP 提供任何内容 例如 HTML 图像 声音 视频等 SOAP 是一种基于 XML 的消息编码 通常通过 HTTP 发送 但
  • 如何将比其父元素宽的元素居中?

    我目前有一个固定宽度为 900px 的 div 我想添加一个固定宽度为 950px 的子 iframe 并且我希望它与中心完美对齐 那怎么办呢 Thanks 您可以将子项放置在 50 处 然后使用负边距 即子项宽度的一半 parent po
  • 检查 php 脚本是否仍在运行

    我有一个脚本可以监听 jabber 服务器并做出相应的响应 虽然它不应该停止 但昨晚它却停止了 现在我想每分钟运行一个 cron 作业来检查脚本是否正在运行 如果没有运行则启动它 问题是 如何检查特定脚本是否仍在运行 一些解决方案已经发布h
  • C# 替换 docx 中的文本字符串

    使用 C 有没有一种好方法可以在 docx 文件中查找和替换文本字符串 而无需在该计算机上安装 word 是的 使用Open XML http openxmldeveloper org default aspx 这是一篇解决您的具体问题的文
  • 以 table.column 格式返回 Oracle 列名?

    是否有任何设置或方法可以用来让 Oracle 返回结果 table table
  • 如何使用Vite从公共目录导入JSON文件?

    我有一个 Vue3 Vite 项目 其中一些数据必须从外部 JSON file 但是当我构建项目时 JSON 文件被捆绑 我需要将 JSON 文件保留在外部 我尝试过的 第一次尝试vite config ts export default
  • 从高级编辑器更改数据类型与数据转换

    我正在使用 SSIS 创建一些包 我对周围感到困惑数据转换变换组件并从高级编辑器更改列数据类型 如果我可以进入高级编辑器并更改输出的数据类型 为什么我需要输入数据转换 这只是取决于偏好还是使用两种方法之间有区别吗 在展示两种方法之间的差异之
  • 附加文件时的 Rails ActiveStorage 范围

    使用 ActiveStorage 时 如何创建附加文件的范围 例如 class Check lt ActiveRecord Base has one attached image end 我想要类似的东西Check has attached
  • angularJS element.on 回调和作用域.$apply

    在此示例中 我有一个带有附加指令的输入 该指令旨在在输入旁边显示消息 还有另一个输入和一个用于添加消息的按钮 显示一些消息后 关注带有附加指令的输入应该会清除消息 http jsfiddle net viro WBqxf http jsfi
  • 使用 PHP 创建目录中所有类的实例

    我有一个包含多个 PHP 文件的目录 这些文件由与文件同名的类组成 Sample php的班级将被称为Sample 每个类都有一个名为的函数OnCall 如何在我的目录中创建每个类的实例并执行它们的所有OnCall s 我无法手动完成 sa
  • 为什么 ASP.NET Core 本地化不起作用

    我创建了一个空项目 启动 cs public void ConfigureServices IServiceCollection services services AddLocalization s gt s ResourcesPath
  • 如何向 MKPointAnnotation 添加按钮?

    我刚刚在尝试向注释点添加详细信息按钮时陷入困境 不幸的是我不知道该怎么做 有人可以帮我吗 The image below presents what I d like to achieve Thanks MapKit 视图控制器 impor
  • 重构复杂的嵌套数组

    我有一个像这样的数组 var my array 2 9 10 5 10 11 4 11 9 1 19 2 41 10 7 17 3 0 11 4 18 5 中的数组my array包括另外两个数组 第一个数组不是必需的 但看看第二个 mya
  • 在 prolog 中生成从 N 到 1 的数字列表

    我正在尝试生成从 N 到 1 的数字列表 而不使用任何内置谓词 例如 findall 或 numlist 我究竟做错了什么 pred N H T H is N N1 is N 1 pred N1 T pred 1 我不断收到错误 超出全局堆
  • 重载决策中是否实际选择了纯虚函数?

    来自我在上一个问题中的评论 由于不能存在抽象类的实例 因此在重载解析后永远无法选择纯虚函数 明显的反应是 abstract class a new derived class a gt pure virtual function 以及正确性
  • EditText - 文本和 EditText 行之间的间隙

    When I insert text to my EditText field the text has an abnormal gap between itself and the EditText s line Here s a pri
  • Java XPath(Apache JAXP 实现)性能

    注意 如果您也遇到此问题 请在 Apache JIRA 上投票 https issues apache org jira browse XALANJ 2540 https issues apache org jira browse XALA
  • 如何将 Android 应用本地化为印度尼西亚语

    我需要将我的应用程序本地化为印度尼西亚语言 我的应用程序的资源文件夹包含每种语言的 values 子文件夹列表 例如 values fr 文件夹 但我读到了令人困惑的信息Android 开发者文档 http developer androi
  • 当 xml 更改时,Odoo 模板页面不会更新

    刚刚为客户启动 Odoo 我在模板方面遇到了一个重大问题 一个简单的模板 有一些 div 和标题 我还有一个记录可以在主菜单中显示 当我第一次创建它时 一切正常 但是 如果我想添加或更改一些 html 这些更改不会显示在网站页面上 即使在我