'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="{&quot;widget&quot;: &quot;contact&quot;, &quot;fields&quot;: [&quot;address&quot;, &quot;name&quot;], &quot;no_marker&quot;: 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 模型中的 headerfooter

要解决该问题,请更改文档布局模型,如下所示:

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 中找到使用新字段的示例,例如 streetcitybank_ids