0

我想在继承的 qweb 报告模板中向 odoo xpath 查询的所有匹配项添加相同的属性。

我的代码仅将“1.aaa”的颜色更改为红色。(第一个匹配的项目)

我可以将“/*[@class='test_class'][2]”用于第二个项目,但这不是解决方案,因为继承报告中有许多带有“test_class”的项目。

<template id="test_report_document_raw">

 <h2 class="test_class">1. aaa</h2>

 <h2 class="test_class">2. bbb</h2>

 <h2 class="test_class">3. ccc</h2>

 ...

</template>

<template id="test_report_document" inherit_id="test.test_report_document_raw" primary="True">

 <xpath expr="//*[@class='test_class']" position="attributes">

      <attribute name="style">color: red;</attribute>

   </xpath>

</template
4

2 回答 2

2

AFAIK 这是一个 Openerp 错误,它不考虑多个 xpath 对应关系。

或者,您可以覆盖fields_view_get并通过 lxml 库使用 xpath。

于 2016-02-23T13:23:42.687 回答
0

正如您所说,您可以使用 xpath 表达式"/*[@class='test_class'][2]","/*[@class='test_class'][3]",..,"/*[@class='test_class'][2]"等来更新样式。

其他解决方案是使用您的新样式更新 css 类。所以无论你在哪里使用这个类'test_class',所有这些变化都会影响。

于 2016-02-24T05:27:41.703 回答