首页 > 解决方案 > XPATH 指令

问题描述

我想在 user_id 字段之后添加一个字段

我试过了,但不幸的是,它不起作用,有人可以告诉我它仍然需要做哪些改变吗?

<xpath expr="/form/sheet/notebook/page[@string='Other Information']//group[@string='Sales Information']/field[@name='user_id']" position="after">
     <field name="my_field"/>
</xpath>

查看拱门

<page string="Other Information">
<group>
    <group string="Sales Information" name="sales_person">
        <field name="user_id"/>
        <field name="team_id" options="{'no_create': True}"/>
        <field name="client_order_ref"/>
        <field name="company_id" options="{'no_create': True}" groups="base.group_multi_company"/>
        <field name="project_id" attrs="{'invisible':[('state','=','sale')]}" context="{'default_partner_id':partner_invoice_id, 'default_name':name}" groups="analytic.group_analytic_accounting"/>
        <field name="related_project_id" attrs="{'readonly': ['|',('project_id','!=',False),('invoice_count','!=',0),('state','=','sale')],'invisible':[('state','!=','sale')]}" context="{'default_partner_id':partner_invoice_id, 'default_name':name}" groups="analytic.group_analytic_accounting"/>
    </group>
    <group name="sale_pay" string="Invoicing">
        <field name="fiscal_position_id" options="{'no_create': True}"/>
        <field name="invoice_status" attrs="{'invisible': [('state', 'not in', ('sale','done'))]}"/>
    </group>
    <!-- ***** THIS ONE ****** -->
    <group string="Reporting" name="technical" groups="base.group_no_one">
        <field groups="base.group_no_one" name="origin"/>
    </group>
    <!-- ***** THIS ONE ****** -->
</group>

标签: xmlxpathodoo

解决方案


如果您尽可能使用 // 访问器,则可以减少这种 XPath 问题,例如,对于您可以使用的视图

//page[@string='Other Information']//group[@string='Sales Information']/field[@name='user_id']

<xpath expr="//page[@string='Other Information']//group[@string='Sales Information']/field[@name='user_id']" position="after">
        <field name="my_field"/>
</xpath>

无论如何,//访问器不是随便使用的,因为它有性能成本,但是对于简单的视图,您可以毫无问题地使用它。


推荐阅读