'base.document.layout' object 没有属性 'header' odoo14 - 试图在报告中显示自定义字段
'base.document.layout' object has no attribute 'header' odoo14 - trying to display custom fields in report
使用自定义模块,我在每个 res.company object 中添加了两个字段 header 和页脚。这些是二进制类型的字段。
我现在想在 qweb 的文档布局中显示它们。
不幸的是,odoo 告诉我
'base.document.layout' object has no attribute 'header'
这是我的布局的样子
<?xml version="1.0"?>
<t t-name="web.external_layout_boxed">
<div t-attf-class="header o_company_#{company.id}_layout" t-att-style="report_header_style">
<div class="o_boxed_header">
<div class="row mb8">
<div class="col-6">
<!--HERE--> <img t-if="company.logo" t-att-src="image_data_uri(company.header)" alt="brief_header"/>
</div>
<div class="col-6 text-right mb4">
<h4 class="mt0" t-field="company.report_header"/>
<div name="company_address" class="float-right mb4">
<span class="company_address" t-field="company.partner_id" t-options="{"widget": "contact", "fields": ["address", "name"], "no_marker": true}"/>
</div>
</div>
</div>
</div>
</div>
<div t-attf-class="article o_report_layout_boxed o_company_#{company.id}_layout" t-att-data-oe-model="o and o._name" t-att-data-oe-id="o and o.id" t-att-data-oe-lang="o and o.env.context.get('lang')">
<div class="pt-5">
<t t-call="web.address_layout"/>
</div>
<t t-raw="0"/>
</div>
<img t-if="company.logo" t-att-src="image_data_uri(company.footer)" alt="brief_footer"/>
</t>
如您所见,我正在尝试使用 company.header
访问 header
附加的图片显示字段存在于类型中。
我做错了什么?如何在external_layout_boxed中正确显示上传的图片?
呈现文档时,company 变量设置为 wizard
对象而不是用户公司。 Odoo 将尝试访问 base.document.layout
模型中的 header
和 footer
。
要解决该问题,请更改文档布局模型,如下所示:
class BaseDocumentLayout(models.TransientModel):
_inherit = 'base.document.layout'
header = fields.Binary(related="company_id.header")
footer = fields.Binary(related="company_id.footer")
您可以在 l10n_de module where they created a new report layout and altered base.document.layout 中找到使用新字段的示例,例如 street
、city
或 bank_ids
使用自定义模块,我在每个 res.company object 中添加了两个字段 header 和页脚。这些是二进制类型的字段。
我现在想在 qweb 的文档布局中显示它们。 不幸的是,odoo 告诉我
'base.document.layout' object has no attribute 'header'
这是我的布局的样子
<?xml version="1.0"?>
<t t-name="web.external_layout_boxed">
<div t-attf-class="header o_company_#{company.id}_layout" t-att-style="report_header_style">
<div class="o_boxed_header">
<div class="row mb8">
<div class="col-6">
<!--HERE--> <img t-if="company.logo" t-att-src="image_data_uri(company.header)" alt="brief_header"/>
</div>
<div class="col-6 text-right mb4">
<h4 class="mt0" t-field="company.report_header"/>
<div name="company_address" class="float-right mb4">
<span class="company_address" t-field="company.partner_id" t-options="{"widget": "contact", "fields": ["address", "name"], "no_marker": true}"/>
</div>
</div>
</div>
</div>
</div>
<div t-attf-class="article o_report_layout_boxed o_company_#{company.id}_layout" t-att-data-oe-model="o and o._name" t-att-data-oe-id="o and o.id" t-att-data-oe-lang="o and o.env.context.get('lang')">
<div class="pt-5">
<t t-call="web.address_layout"/>
</div>
<t t-raw="0"/>
</div>
<img t-if="company.logo" t-att-src="image_data_uri(company.footer)" alt="brief_footer"/>
</t>
如您所见,我正在尝试使用 company.header
访问 header附加的图片显示字段存在于类型中。
我做错了什么?如何在external_layout_boxed中正确显示上传的图片?
呈现文档时,company 变量设置为 wizard
对象而不是用户公司。 Odoo 将尝试访问 base.document.layout
模型中的 header
和 footer
。
要解决该问题,请更改文档布局模型,如下所示:
class BaseDocumentLayout(models.TransientModel):
_inherit = 'base.document.layout'
header = fields.Binary(related="company_id.header")
footer = fields.Binary(related="company_id.footer")
您可以在 l10n_de module where they created a new report layout and altered base.document.layout 中找到使用新字段的示例,例如 street
、city
或 bank_ids