如何覆盖act_stock_return_picking按钮?在Odoo 9

时间:2018-01-16 15:41:32

标签: xml odoo-9 odoo

我想覆盖"反向"选股按钮仅对stock.group_stock_manager可见。

我使用了与往常相同的方法来覆盖按钮:

<?xml version="1.0" encoding="utf-8"?>
<openerp>
  <data>
    <record id="view_picking_form_extend" model="ir.ui.view">
      <field name="name">stock.picking.form.extend</field>
      <field name="model">stock.picking</field>
      <field name="inherit_id" ref="stock.view_picking_form"/>
      <field name="arch" type="xml">
        <xpath expr="/form/header/button[@name='%(act_stock_return_picking)d']" position="replace">
          <button name="%(act_stock_return_picking)d" string="Reverse" states="done" type="action" groups="stock.group_stock_manager"/>
        </xpath>
      </field>
    </record>
  </data>
</openerp>

但是我收到了一个错误。它表示该元素不能位于父视图中。

我在父视图中有这个:

<button name="%(act_stock_return_picking)d" string="Reverse" states="done" type="action" groups="base.group_user"/>

注意:如果我覆盖其他按钮(没有&#39; &#39;&#39; d & #39;字符)它工作正常。

我做错了什么?

1 个答案:

答案 0 :(得分:2)

当你有%(xml_id)d时,这意味着Odoo将在该XML ID的数据库中搜索ID(string),并用PostgreSQL ID替换它({{1 }})。因此,作为每个XML ID,如果您尚未在模块中声明它,则必须指定声明它的模块。

尝试在操作名称之前编写创建源按钮的模块名称,如果只修改integer,请不要替换整个按钮,而是使用groups,像这样:

attributes