Qweb 如何 select 包含非空字段的记录
Qweb how to select records with non-null field
我有一份 QWeb 报告,其中对象 o
是 stock.move(97,99,98,325,326,327)
所以
<span t-field="o"/>
显示
stock.move(97,99,98,325,326,327)
在数据库中,所有这些 stock.move
元素中,只有三个填充了字段 procurement_id
:
# select id,procurement_id from stock_move where id in (97,98,99,325,326,327);
id | procurement_id
-----+----------------
97 |
98 |
99 |
325 | 16
326 | 17
327 | 18
(6 rows)
如果我这样做:
<span t-field="o.procurement_id"/>
未生成 QWeb 报告,可能是因为我们正在尝试检索 procurement.order
的空实例(在本例中为三个空实例)。
我如何才能只检索三个现有的 procurement.order
实例,即已填充 procurement_id
的实例?
您可以使用方法 mapped
将采购检索为 RecordSet 或 filtered
以获取 stock.move
s 的新 RecordSet 以及您想要过滤的内容。
<!-- get the procurements -->
<span t-esc="o.mapped('procurement_id')" />
<!-- get the moves with procurements -->
<span t-esc="o.filtered(lambda move: move.procurement_id)" />
我有一份 QWeb 报告,其中对象 o
是 stock.move(97,99,98,325,326,327)
所以
<span t-field="o"/>
显示
stock.move(97,99,98,325,326,327)
在数据库中,所有这些 stock.move
元素中,只有三个填充了字段 procurement_id
:
# select id,procurement_id from stock_move where id in (97,98,99,325,326,327);
id | procurement_id
-----+----------------
97 |
98 |
99 |
325 | 16
326 | 17
327 | 18
(6 rows)
如果我这样做:
<span t-field="o.procurement_id"/>
未生成 QWeb 报告,可能是因为我们正在尝试检索 procurement.order
的空实例(在本例中为三个空实例)。
我如何才能只检索三个现有的 procurement.order
实例,即已填充 procurement_id
的实例?
您可以使用方法 mapped
将采购检索为 RecordSet 或 filtered
以获取 stock.move
s 的新 RecordSet 以及您想要过滤的内容。
<!-- get the procurements -->
<span t-esc="o.mapped('procurement_id')" />
<!-- get the moves with procurements -->
<span t-esc="o.filtered(lambda move: move.procurement_id)" />