如果您准确地复制/粘贴了您在视图定义中键入的内容,那么您的t-attf- class属性格式不正确,并且所有记录都将具有以下类:
class="#{record.state=='scheduled' ? oe_kanban_color_1 : oe_kanban_color_0"
由于 CSS 类的优先级,这将导致它们都具有oe_kanban_color_1样式。
一些提示:
oe_kanban_color_X为避免着色某些记录,您可以在某些情况下完全省略
- 您可以使用
t-att-class属性来允许任意 Javascript 表达式,具体取决于您想要做什么。相反,t-attf-class只允许替换占位符。
- 在将字段值与 Javascript 运算符进行比较时,您通常希望使用字段的
value or raw_value,而不是 Field 对象本身。value只会raw_value在值需要特定渲染时有所不同,例如日期、数字等。
- 该
kanban_getcolor()函数接受任何整数或字符串,并返回 10 个默认看板颜色索引之一。
基于上述内容,以下内容可能更接近您尝试做的事情(注意t-att-class属性:
<div t-att-class="record.state.value == 'scheduled' ?
'oe_kanban_color_1' :
'oe_kanban_color_0' ">
或者,您可以使用t-attf-class并kanban_getcolor()根据状态字符串选择颜色:
<div t-attf-class="oe_kanban_color_#{kanban_getcolor(record.state.value)}">
最后一个示例类似于在官方 OpenERP 发行版中的许多默认看板视图中所做的。