11

我想为 odoo 创建一个新主题。我通过创建一个新模块并安装它来完成它。我在这个文档中看到odoo 通过使用 t-extend 关键字支持模板继承。然而我做不到。这是我的自定义模板:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
    <template id="website.homepage" name="Homepage" page="True">
        <div class="header">
            <h1>FOO<h1>
            <div class="main">
            </div>
        </div>
    </template>

    <template id="website.contact" name="Homepage" page="True">
        <t t-extend="website.homepage">
            <t t-jquery="div.main" t-operation="inner">
                <h1>FOO 2</h1>
            </t>
        </t>
    </template>

</data>
</openerp>

模板 website.contact 应该显示 FOO 和 FOO 2 但它只显示 FOO 2。请帮我解释一下。谢谢。

4

5 回答 5

12

您使用客户端模板的语法,但这些是服务器端模板。您将继承与服务器端模板一起使用:

<template id="contact" inherit_id="website.homepage">
    <xpath expr="//div[@class='main']" position="inside">
        <h1>FOO 2</h1>
    </xpath>
</template>

您可以在官方文档中阅读更多内容。

于 2014-12-22T17:47:06.080 回答
1

您正在尝试创建新主题。?你在使用odoo 8.0吗?我问这个是因为您发布的链接是针对 OpenERP 7.0 的,所以对于 Odoo 8.0 的新文档,请参见此处,对于 QWEB,您可以在此处QWEB找到它。

现在主要的事情是,如果您尝试为 CMS 或网站模块创建新主题,那么您必须完成这些步骤

于 2014-12-24T06:49:42.517 回答
1

在这里使用 Xpath,您可以继承和更改父模板,示例如下。

    <template id="homepage_extend" inherit_id="website.homepage">
      <xpath expr="//div[@class='main']" position='inside'>
        <h1>FOO 2</h1>
      </xpath>
    </template>

或尝试

  <template id="homepage_extend" inherit_id="website.homepage">
      <xpath expr="//div[@class='header']" position='replace'>
        <div class="header">
          <h1>FOO<h1>
          <div class="main">
            <h1>FOO 2</h1>
          </div>
       </div>
      </xpath>
    </template>

您也可以通过覆盖该模板来尝试这些,例如:

 <template id="website.homepage">
    <div class="header">
        <h1>FOO<h1>
        <div class="main">
          <h1>FOO 2<h1>
        </div>
    </div>
</template>

在覆盖时不要忘记给出确切的 id,后跟模块名称。干杯!

于 2017-02-15T04:55:07.163 回答
0

在父模板中,添加<t t-raw="0"/>or <t t-raw="name"/>, template: ...code html...

https://www.odoo.com/documentation/9.0/reference/qweb.html

于 2016-10-13T03:27:34.560 回答
-1

你好 Minh-Hung Nguyen,

试试这个代码,

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
    <template id="website.homepage" name="Homepage" page="True">
        <div class="header">
            <h1>FOO<h1>
            <div class="main">
            </div>
        </div>
    </template>

    <template id="website.contact" name="Homepage" page="True">
        <t t-extend="website.homepage">
            <!-- Use 'append' to add the h1 tag inside main div -->
            <t t-jquery="main" t-operation="append">
                <h1>FOO 2</h1>
            </t>
        </t>
    </template>

</data>
</openerp>

希望我的回答对你有帮助。

于 2017-06-30T13:25:25.643 回答