带有模型记录的 Odoo 14 渲染模板

Odoo 14 render template with model records

我是 QWeb 模板引擎的新手,我正在尝试使用通过 request.render 函数传递给 class 名称的模型记录的属性。

例如:

在我的 Web 控制器中,我响应:

return request.render('sync.product_sync', {'odoo_products': products_odoo})

现在,我想在 div:

的 class 标签中插入每个 >products_odoo< 的 id 属性
<t t-foreach="odoo_products" t-as="odoo_prod">
    <div class="odoo_prod_... {{ odoo_prod.id }}"> <t t-esc="odoo_prod.name"/> </div>
</t>

结果

<div class="odoo_prod_... {{ odoo_prod.id }}"> Productname 1 </div>
<div class="odoo_prod_... {{ odoo_prod.id }}"> Productname 2 </div>
<div class="odoo_prod_... {{ odoo_prod.id }}"> Productname 3 </div>
<div class="odoo_prod_... {{ odoo_prod.id }}"> Productname 4 </div>
... 
...

我刚刚发现 _index 语法没有给我想要的结果...

谢谢

这是因为你添加了class=但是Odoo只会在属性以t-attf-$name为前缀时处理属性。

你的情况是 t-attf-class="odoo_prod_... {{ odoo_prod.id }}"

More information

示例:

<t t-foreach="[1, 2, 3]" t-as="item">
    <li t-attf-class="row {{ (item_index % 2 === 0) ? 'even' : 'odd' }}">
        <t t-esc="item"/>
    </li>
</t>