如何使用 t-if 在行号中创建条件
How to use t-if to make condition in row number
我尝试在 odoo 11 中修改报告发票中的一行,我需要有关单击 "Print" 按钮后报告生成的行数的条件,以使
<t-if="number_line_in_table== 1">
<!--DO something..-->
</t>
我不认为你可以做一个 Python 风格的 enumerate
,但你可以只使用老式的计数器,如下所示。
<t t-set="counter" t-value="0"/>
<t t-foreach="records" t-as="record">
<t t-set="counter" t-value="counter + 1"/>
<t t-if="counter == 1">
<!-- Do Something. -->
</t>
</t>
这是 an example 他们在核心中执行此操作的地方。
这是包含更多信息的 QWeb Documentation for Odoo 12。
对于您的具体示例,您希望继承现有视图以在该视图的现有 t-foreach
元素中包含一个 counter
。
现有视图的相关部分
<tr t-foreach="o.order_line" t-as="line">
<td>
<span t-field="line.name"/>
</td>
<td>
<span t-esc="', '.join(map(lambda x: x.name, line.taxes_id))"/>
</td>
<td class="text-center">
<span t-field="line.date_planned"/>
</td>
<td class="text-right">
<span t-field="line.product_qty"/>
<span t-field="line.product_uom.name" groups="product.group_uom"/>
</td>
<td class="text-right">
<span t-field="line.price_unit"/>
</td>
<td class="text-right">
<span t-field="line.price_subtotal"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
如何使用计数器
免责声明:我以前从未以这种方式做过任何事情。它可能会或可能不会完全像这样工作。如果您无法通过继承使其工作,那么您可以通过 xpath
replace
整个 foreach
循环,如有必要。
<xpath expr="//tr[@t-foreach='o.order_line']" position="before">
<t-set="counter" t-value="0"/>
</xpath>
<xpath expr="//tr[@t-foreach='o.order_line']/td[1]" position="before">
<t-set="counter" t-value="counter + 1"/>
<t t-if="counter == 1">
<!-- Do Something. -->
</t>
</xpath>
我尝试在 odoo 11 中修改报告发票中的一行,我需要有关单击 "Print" 按钮后报告生成的行数的条件,以使
<t-if="number_line_in_table== 1">
<!--DO something..-->
</t>
我不认为你可以做一个 Python 风格的 enumerate
,但你可以只使用老式的计数器,如下所示。
<t t-set="counter" t-value="0"/>
<t t-foreach="records" t-as="record">
<t t-set="counter" t-value="counter + 1"/>
<t t-if="counter == 1">
<!-- Do Something. -->
</t>
</t>
这是 an example 他们在核心中执行此操作的地方。
这是包含更多信息的 QWeb Documentation for Odoo 12。
对于您的具体示例,您希望继承现有视图以在该视图的现有 t-foreach
元素中包含一个 counter
。
现有视图的相关部分
<tr t-foreach="o.order_line" t-as="line">
<td>
<span t-field="line.name"/>
</td>
<td>
<span t-esc="', '.join(map(lambda x: x.name, line.taxes_id))"/>
</td>
<td class="text-center">
<span t-field="line.date_planned"/>
</td>
<td class="text-right">
<span t-field="line.product_qty"/>
<span t-field="line.product_uom.name" groups="product.group_uom"/>
</td>
<td class="text-right">
<span t-field="line.price_unit"/>
</td>
<td class="text-right">
<span t-field="line.price_subtotal"
t-options='{"widget": "monetary", "display_currency": o.currency_id}'/>
</td>
</tr>
如何使用计数器
免责声明:我以前从未以这种方式做过任何事情。它可能会或可能不会完全像这样工作。如果您无法通过继承使其工作,那么您可以通过 xpath
replace
整个 foreach
循环,如有必要。
<xpath expr="//tr[@t-foreach='o.order_line']" position="before">
<t-set="counter" t-value="0"/>
</xpath>
<xpath expr="//tr[@t-foreach='o.order_line']/td[1]" position="before">
<t-set="counter" t-value="counter + 1"/>
<t t-if="counter == 1">
<!-- Do Something. -->
</t>
</xpath>