如何在我们自己的模块中继承特定视图? ODOO

时间:2015-10-14 04:37:44

标签: python xml views openerp odoo

早上好,我想继承ODOO观点的一些观点。所以我可以使用它自己的模块。任何人都可以解释一下,有什么可能的方法吗?

提前致谢。

2 个答案:

答案 0 :(得分:8)

查看继承

Odoo不是修改现有视图(通过覆盖它们),而是提供视图继承,其中子视图“扩展”视图应用于根视图之上,并且可以添加或删除其父视图中的内容。

扩展视图使用inherit_id字段引用其父级,而不是单个视图,其arch字段由选择和更改其父视图内容的任意数量的xpath元素组成:

<!-- improved idea categories list -->
<record id="idea_category_list2" model="ir.ui.view">
    <field name="name">id.category.list2</field>
    <field name="model">idea.category</field>
    <field name="inherit_id" ref="id_category_list"/>
    <field name="arch" type="xml">
        <!-- find field description and add the field
             idea_ids after it -->
        <xpath expr="//field[@name='description']" position="after">
          <field name="idea_ids" string="Number of ideas"/>
        </xpath>
    </field>
</record>

EXPR     在父视图中选择单个元素的XPath表达式。如果它不匹配任何元素或多个元素,则引发错误 位置

Operation to apply to the matched element:

inside
    appends xpath's body at the end of the matched element
replace
    replaces the matched element by the xpath's body
before
    inserts the xpath's body as a sibling before the matched element
after
    inserts the xpaths's body as a sibling after the matched element
attributes
    alters the attributes of the matched element using special attribute elements in the xpath's body

提示

匹配单个元素时,可以直接在要查找的元素上设置position属性。下面的两个遗产都会给出相同的结果。

<xpath expr="//field[@name='description']" position="after">
    <field name="idea_ids" />
</xpath>

<field name="description" position="after">
    <field name="idea_ids" />
</field>

希望得到这个帮助。

答案 1 :(得分:1)

这里我如何在我的新模块中继承和使用现有视图。我想继承购买视图,所以在我的模块中我继承了purchase.order对象

class purchase_order(osv.osv):
_inherit="purchase.order"

//你可以像往常一样在这里添加你想要的任何字段

我继承了下面的视图

<record id="purchase_order_advance_invoice_inherit_form" model="ir.ui.view">
<field name="name">purchase.order.advance.invoice.inherit.form</field>
<field name="model">purchase.order</field>
<field name="inherit_id" **ref="purchase.purchase_order_form"**/>

//这是我引用我要继承的视图的地方,你可以完成其余的标记