Эквивалент является t-call
функция или директивы. t-call
содержит другой файл шаблона. Вы можете использовать его для обертывания контента, который обычно используется для шаблона website.layout
, как показано в примере ниже.
<openerp>
<data>
<template id="addon_name.template_name" name="Template Name">
<t t-call="website.layout">
<div>Hello World</div>
</t>
</template>
</data>
</openerp>
Однако вам не нужно использовать его в качестве обертки для контента. Вы можете использовать эту директиву как средство для включения других шаблонов в существующий шаблон. Именно так.
<openerp>
<data>
<template id="addon_name.template_name" name="Template Name">
<t t-call="website.layout">
<t t-call="addon_name.top_section"/>
<t t-call="addon_name.middle_section"/>
<t t-call="addon_name.bottom_section"/>
</t>
</template>
</data>
</openerp>
Для этой работы вы должны быть уже определены шаблоны, в моем примере они были бы top_section, middle_section и bottom_section. Также обратите внимание, как эти шаблоны не включают обертку для website.layout
. При включении дополнительного шаблона вы не хотите включать шаблон website.layout
, поскольку он предназначен для предоставления общей структуры веб-страницы и предназначен для использования в качестве обертки для остальной части вашего контента.
<openerp>
<data>
<template id="addon_name.top_section" name="Top Section">
<div>Hello World</div>
</template>
</data>
</openerp>
Если вы наследуете от другого шаблона, вы должны сначала указать механизм шаблонов, где вы хотите ввести код. Это делается с использованием выражения xpath
. Существует много примеров выражений xpath
в исходном коде Odoo. Пожалуйста, просмотрите там или в Интернете. Пример ниже приведен в ответ на сделанные ниже замечания, которые были конкретно касаются шаблона отчета. При создании шаблонов отчетов вы не хотите включать шаблон website.layout
. Это для просмотра веб-сайта не qweb
.
<openerp>
<data>
<template id="addon_name.template_name" inherit_id="addon_name.template_name">
<xpath expr="//div[@class='class_name']" position="replace">
<t t-call="addon_name.top_section"/>
<t t-call="addon_name.middle_section"/>
<t t-call="addon_name.bottom_section"/>
</xpath>
</template>
</data>
</openerp>
Где вы создаете шаблоны top_section, middle_section и bottom_section, я имею в виду, в каком файле и что делать с унаследованными файлами, потому что я получил вопрос, связанный с этим, т-вызов =»" не может быть расположенный в родительском представлении ... –
http://prntscr.com/e0j3a2 http://prntscr.com/e0j3fb есть мои файлы –
Поскольку вы наследуете, вам нужно сначала предоставить вашему шаблону позицию в родительском шаблоне, чтобы введите код шаблона. Вероятно, существует реальный термин для описания того, что я только что сказал, но я не знаю, что это такое. Я обновлю свой код с примером включения другого шаблона xml в унаследованном представлении. Глядя на ваш пример, я думаю, вам нужно просто переместить свой 't-call' внутри выражения' xpath'. –