odoo - 正确使用 t-attf-class 来禁用带有 Odoo 的标题按钮中的按钮
问题描述
我一直在尝试使用t-attf-class
以禁用header
Odoo (v11) 部分中的按钮。我在视图 xml 文件的标题中创建了一个按钮,并将其与模型中的操作链接,该操作工作正常。我正在尝试根据state
对象的条件禁用按钮,我在 Odoo 的源代码中找到了以下模板:
<t t-name="FieldStatus.content.button">
<t t-set="disabled" t-value="!clickable || i.selected"/>
<button type="button" t-att-data-value="i.id" t-att-disabled="disabled ? 'disabled' : undefined"
t-attf-class="btn btn-sm o_arrow_button btn-#{i.selected ? 'primary' : 'default'}#{disabled ? ' disabled' : ''}">
<t t-esc="i.display_name"/>
</button>
</t>
所以我试图对这个按钮做同样的事情:
<form string="Form Name">
<header>
...
<button name="action_delete" string="Delete" type="object" t-attf-class="btn-danger #{state == 'done'?' disabled': ''}" t-att-disabled="state == 'done' ? 'disabled': undefined"/>
...
</header>
该模型包含一个state
采用以下值之一的字段:['draft', 'pending', 'done']
此操作action_delete
在模型中定义,并且可以正常工作。我尝试使用<attribute>
按钮内部,以及按钮t-if
内部和外部的属性,但没有运气。
PS这个问题是不同的,答案不适用于这种情况,也可以使用invisible
更容易的属性来实现,但我们不想这样做。
解决方案
为什么不直接使用默认的 Odoo 方式,使其在某些州不可见?
<button name="action_delete" string="Delete" type="object"
attrs="{'invisible': [('state', 'in', ['state1', 'state2'])]}" />
推荐阅读
- python-3.x - 像 str.join 但带有随机分隔符
- python - 使用 pandas 读取 csv 文件
- r - 如何在r中减去两个数据框列的平均值“平均值(df1 $ a-df2 $ b)”
- javascript - 用 HTML 读取国际电话
- c++ - 在嵌入式系统中不使用堆的 C++ 组合
- android-studio - 如何防止用户限制数据使用?
- javascript - javascript find() 返回 true 但是项目不包含在数组中
- laravel - ScoutElasticServiceProvider 和客户端
- python - Leetcode 1155. 基于字典的记忆与 LRU 缓存
- beautifulsoup - 使用“src”标签从谷歌抓取图像时发出请求,如何使用美丽的汤从谷歌抓取图像?