Qweb 如何 select 包含非空字段的记录

Qweb how to select records with non-null field

我有一份 QWeb 报告,其中对象 ostock.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.moves 的新 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)" />