Odoo V14 - lxml.etree.XPathSyntaxError: Invalid predicate
Odoo V14 - lxml.etree.XPathSyntaxError: Invalid predicate
我正在开发一个新模块,该模块包括在 stock_picking 报告中添加产品重量和总重量,但我的 xpaths 有问题。
错误:lxml.etree.XPathSyntaxError: Invalid predicate
我已经很仔细地看了他们,但我找不到问题所在。你能帮帮我吗?
代码:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_picking_inherit" inherit_id="stock.report_picking">
<xpath expr="//td[contains(@t-if, 'has_barcode') and contains(@class, 'text-center')]" position="after">
<td>
<span t-if="o.state != 'done'" t-esc="ml.product_id.weight"/>
<span t-if="o.state == 'done'" t-esc="ml.product_id.weight"/>
</td>
</xpath>
<xpath expr="//table[contains(@t-if, 'o.move_line_ids') and contains(@t-if, 'and') and contains(@t-if, 'o.move_ids_without_package')" position="after">
<span t-field="o.stock_total_weight"/>
</xpath>
</template>
</odoo>
提前致谢...
写入 xpath
时出现问题。
在 Odoo 中有 三种 类型的元素定位器用于匹配目标元素 Xpath
示例:
<xpath expr="page[@name='pg']/group[@name='gp']/field" position="inside">
<field name="description"/>
</xpath>
<field name="res_id" position="after"/>
<div name="name" position="replace">
<div name="name2">
<field name="name2"/>
</div>
</div>
你的代码是这样的:
<xpath expr="//table[@t-if='o.move_line_ids and o.move_ids_without_package']//tbody//td[@t-if=t-if='has_barcode']" position="after">
<td>
<span t-if="o.state != 'done'" t-esc="ml.product_id.weight"/>
<span t-if="o.state == 'done'" t-esc="ml.product_id.weight"/>
</td>
</xpath>
“predicate”是方括号中的 xpath 部分,因此您想在那里寻找问题。仔细观察,//table[contains(@t-if, 'o.move_line_ids') and contains(@t-if, 'and') and contains(@t-if, 'o.move_ids_without_package')
中缺少右方括号
试一试
<xpath expr="//table[contains(@t-if, 'o.move_line_ids') and contains(@t-if, 'and') and contains(@t-if, 'o.move_ids_without_package')]" position="after">
我正在开发一个新模块,该模块包括在 stock_picking 报告中添加产品重量和总重量,但我的 xpaths 有问题。
错误:lxml.etree.XPathSyntaxError: Invalid predicate
我已经很仔细地看了他们,但我找不到问题所在。你能帮帮我吗?
代码:
<?xml version="1.0" encoding="utf-8"?>
<odoo>
<template id="report_picking_inherit" inherit_id="stock.report_picking">
<xpath expr="//td[contains(@t-if, 'has_barcode') and contains(@class, 'text-center')]" position="after">
<td>
<span t-if="o.state != 'done'" t-esc="ml.product_id.weight"/>
<span t-if="o.state == 'done'" t-esc="ml.product_id.weight"/>
</td>
</xpath>
<xpath expr="//table[contains(@t-if, 'o.move_line_ids') and contains(@t-if, 'and') and contains(@t-if, 'o.move_ids_without_package')" position="after">
<span t-field="o.stock_total_weight"/>
</xpath>
</template>
</odoo>
提前致谢...
写入 xpath
时出现问题。
在 Odoo 中有 三种 类型的元素定位器用于匹配目标元素 Xpath
示例:
<xpath expr="page[@name='pg']/group[@name='gp']/field" position="inside">
<field name="description"/>
</xpath>
<field name="res_id" position="after"/>
<div name="name" position="replace">
<div name="name2">
<field name="name2"/>
</div>
</div>
你的代码是这样的:
<xpath expr="//table[@t-if='o.move_line_ids and o.move_ids_without_package']//tbody//td[@t-if=t-if='has_barcode']" position="after">
<td>
<span t-if="o.state != 'done'" t-esc="ml.product_id.weight"/>
<span t-if="o.state == 'done'" t-esc="ml.product_id.weight"/>
</td>
</xpath>
“predicate”是方括号中的 xpath 部分,因此您想在那里寻找问题。仔细观察,//table[contains(@t-if, 'o.move_line_ids') and contains(@t-if, 'and') and contains(@t-if, 'o.move_ids_without_package')
试一试
<xpath expr="//table[contains(@t-if, 'o.move_line_ids') and contains(@t-if, 'and') and contains(@t-if, 'o.move_ids_without_package')]" position="after">