如何在Odoo报价单/销售订单报表中插入客户母公司的logo?
问题根源
你使用的字段路径错误,销售订单sale.order模型本身没有parent字段,你需要取的是订单关联联系人的父级客户的logo,正确字段路径为doc.partner_id.parent_id.image_256。
可行代码方案
基础版(仅显示父级客户logo)
<img t-if="doc.partner_id.parent_id and doc.partner_id.parent_id.image_256" t-attf-src="data:image/*;base64,{{doc.partner_id.parent_id.image_256}}" class="img img-responsive" alt="客户公司Logo"/>
注:额外增加doc.partner_id.parent_id判断,避免当前联系人没有父级时模板渲染报错
兼容版(父级无logo时降级显示当前联系人logo)
如果需要兼容部分联系人没有上级的场景,可使用以下逻辑:
<!-- 优先取父级客户logo,没有则取当前联系人logo --> <t t-set="customer_logo" t-value="doc.partner_id.parent_id.image_256 if doc.partner_id.parent_id else doc.partner_id.image_256"/> <img t-if="customer_logo" t-attf-src="data:image/*;base64,{{customer_logo}}" class="img img-responsive" alt="客户Logo"/>
注意事项
- 不需要额外修改模型或权限配置,Odoo默认销售订单报表渲染上下文已包含
partner_id及关联的父级字段读取权限 - 该路径适配Odoo 12及以上所有版本
内容的提问来源于stack exchange,提问作者Eduardo Marzolla
相关产品推荐
相关产品推荐

