字段使用xpath替换odoo

时间:2017-08-24 07:54:38

标签: xml xpath odoo odoo-9

我已经尝试过Odoo 9并希望更换" Total" field = amount_total,其中包含一个新字段,该字段是使用XPath表达式添加字段内容(sum_of_total)的结果,但它失败并且未返回任何结果。
这是我的XML代码:

<openerp>
    <data>
        <record id="purchase_order_form_training1" model="ir.ui.view">
            <field name="name">purchase.order.form1</field>
            <field name="model">purchase.order</field>
            <field name="inherit_id" ref="purchase.purchase_order_form"/>
            <field name="arch" type="xml">
                <field name="amount_tax" position="after">
                    <field name="down_payment" widget="monetary" options="{'currency_field':'currency_id'}"/>
                </field>
                <xpath expr="form1/sheet/page/group/field[@name='amount_total']" position="replace">
                    <field name="sum_of_total"/>
                </xpath>
            </field>
        </record>
    </data>
</openerp>

odoo日志没有向我显示任何语法错误。任何人都可以帮我确定根本原因吗?

请参阅下文,了解sum_of_total如何初始化

from openerp import models, fields, api, _

class purchase_order(models.Model):
    _inherit = "purchase.order"

    @api.one
    @api.depends('down_payment', 'amount_total')
    def get_total_after_dp(self):
        dp = self.down_payment
        tot = selt.amount_total
        tota = tot + dp
        self.sum_of_total = tota

    sum_of_total = fields.Float('Total Amount',
                                    compute='get_total_after_dp')

    down_payment = fields.Float('Down Payment')

2 个答案:

答案 0 :(得分:1)

采购订单表单视图中没有form1。 试试这个:

<xpath expr="form/sheet/notebook/page/group/field[@name='amount_total']" position="replace">
     <field name="sum_of_total"/>
</xpath>

答案 1 :(得分:0)

<xpath expr="//field[@name='amount_total']" position="after">
      <field name='sum_of_total'/>
</xpath>