xml - Qweb PDF 有两个模型,可能吗?
问题描述
我尝试创建一个 PDF,其中包含来自两个不同模型的信息:
pos.order & pos.order.line
认为也许可以创建一个子模板并在主模板中调用它。
本地日期.xml:
<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<report
id="pos_report_localdate"
model="pos.order"
string="Informe de ventas"
report_type="qweb-pdf"
name="pos_localdate.local_date_document"
attachment_use="False"
file="pos_localdate.local_date_document"
menu = "True"
/>
<report
id="pos_report_localdate_2"
model="pos.order.line"
string="Informe de ventas 2"
report_type="qweb-pdf"
name="pos_localdate.local_date_document"
attachment_use="False"
file="pos_localdate.local_date_document"
menu = "True"
/>
</data>
pos_localdate_report.xml:
<template id="local_date_document">
<t t-call="report.html_container">
<t t-call="report.external_layout">
<div class="page">
<div class="row mt32 mb32">
<div class="col-xs-2">
<strong>Order number</strong>:<br/>
</div>
<div class="col-xs-2">
<strong>Delivery date</strong>:<br/>
</div>
<div class="col-xs-2">
<strong>Client</strong>:<br/>
</div>
<div class="col-xs-2">
<strong>Product</strong>:<br/>
</div>
<div class="col-xs-2">
<strong>Quantity</strong>:<br/>
</div>
<t t-foreach="docs" t-as="o">
<div class="col-xs-12">
<!-- pos_order -->
<div class="col-xs-2">
<p t-field="o.name"/>
</div>
<div class="col-xs-2" t-if="o.x_exp_date">
<p t-field="o.x_exp_date"/>
</div>
<div class="col-xs-2">
<p t-field="o.partner_id"/>
</div>
<!-- pos_order_line ?????????? -->
<t t-call="pos_report_localdate_2">
<div class="col-xs-2">
<p t-field="o.product_id"/>
</div>
<div class="col-xs-2">
<p t-field="o.qty"/>
</div>
</t>
</div>
</t>
</div>
</div>
</t>
继续 pos_localdate_report.xml:
<template id="pos_report_localdate_2">
<t t-call="report.html_container">
<!-- ............................................... -->
</t>
</template>
</data>
</openerp>
请不要误会,如果在某些时候我把错误的做法,我是新人。
解决方案
无需创建第二个模板,
我需要改变:
<t t-call="pos_report_localdate_2">
<div class="col-xs-2">
<p t-field="o.product_id"/>
</div>
<div class="col-xs-2">
<p t-field="o.qty"/>
</div>
</t>
为了:
<!-- pos_order_line -->
<t t-foreach="request.env['pos.order.line'].search([('order_id','=',o.id)])" t-as="obj">
<div class="col-xs-2">
<p t-field="obj.product_id"/>
</div>
<div class="col-xs-2">
<p t-field="obj.qty"/>
</div>
</t>
推荐阅读
- c - 如何使用数组来拥有任意类型的元素?
- python - Ubuntu 上的 Mysql 和主机上的 Jupyter
- objective-c - 如何将主菜单添加到应用程序?
- python - 如何计算列表的每三个值的平均值
- javascript - Google Maps API 返回空的纬度和经度
- python-3.x - 使用Scrapy抓取多个页面时如何在POST请求上动态更改FormRequest中的页码
- python - 将列宽设置为 wx.dataview.DataViewListCtrl 的最大内容或标题宽度
- php - 卡在 laravel 的缓存世界中
- javascript - 使用 nodemailer 发送电子邮件
- python - Pandas DateTime 索引重采样不起作用