如何在OpenERP7中使用inherit属性?

时间:2015-10-07 13:23:34

标签: python xml python-2.7 odoo openerp-7

我试图添加字段' mobil_brigada'现有视图view_operaciones_brigadas_form,位于名为operaciones的模块中。

我的Python代码:

class operaciones_mobil(osv.osv):
   _name = 'operaciones.mobil'
   _inherit = 'operaciones.brigada'
   _columns = {
      'mobil_brigada': fields.many2one('add.mobil', 'Numero de Mobil', help="Numero de celular asignado a la brigada")
   }

我的XML代码:

<openerp>
<data>
    <!-- begin -->
     <record id="view_operaciones_mobil_form" model="ir.ui.view">
        <field name="name">operaciones.mobil.form</field>
        <field name="model">operaciones.mobil</field>
        <field name="inherit_id" ref="operaciones.view_operaciones_brigadas_form" />
         <field name="priority">100</field>
        <field name="type">form</field>
        <field name="arch" type="xml">
           <field name="supervisor" position="after">
              <field name="mobil_brigada"/>
           </field>
        </field>
    </record>
    <!--/ end -->    
</data>

这是我要修改的原始视图:

<record id="view_operaciones_brigadas_form" model="ir.ui.view">
                <field name="name">operaciones.brigada.form</field>
                <field name="model">operaciones.brigada</field>
                <field name="arch" type="xml">
                    <form string="Employee">
                        <header>
                            <field name="state" widget="statusbar" />
                        </header>
                        <sheet>
                            <div class="oe_title">
                                <label for="ficha" class="oe_edit_only"/>
                                <h1>
                                    <field name="ficha" />
                                </h1>
                                <label for="tipo" class="oe_edit_only"/>
                                <h1>
                                    <field name="tipo"/>
                                </h1>
                                <label for="proyecto" class="oe_edit_only"/>
                                <h1>
                                    <field name="proyecto"/>
                                </h1>
                            </div>
                            <group>
                                <group colspan="8">
                                    <field name="tecnico1"/>
                                    <field name="tecnico2"/>
                                </group>
                                <group colspan="4">
                                    <field name="supervisor"/>
                                    <!-- it supposed to be here -->
                                </group>
                            </group>
                        </sheet>
                    </form>
                </field>
    </record>

但是没有发生任何事情,我在控制台中没有收到错误,我是管理员而且我已经添加到__openerp__.py XML文件中......我做错了什么?

3 个答案:

答案 0 :(得分:2)

如果您只想修改现有表单,则必须从Python模型中删除属性_name。在你的情况下:

class operaciones_mobil(osv.osv):
   _inherit = 'operaciones.brigada'
   _columns = {
      'mobil_brigada': fields.many2one('add.mobil', 'Numero de Mobil', help='Numero de celular asignado a la brigada')
   }

答案 1 :(得分:1)

您正在使用这种继承创建两个表(使用_name_inherit属性)。如果您只想向现有表添加新功能,则应删除_name属性。如果您想保留两个表格(operaciones.mobiloperaciones.brigada),请尝试为模型operaciones.mobil创建另一个整体表单,因为您无法将表单与不同模型混合。

答案 2 :(得分:0)

在您的代码中编写_name = 'operaciones.mobil' 它意味着你创造新的模型或表 所以你不能像你写的那样继承视图

您需要创建新视图,包括旧视图和新文件,因此您的最终代码可能是

<record id="view_operaciones_mobil_form" model="ir.ui.view">
        <field name="name">operaciones.mobil.form</field>
        <field name="model">operaciones.mobil</field>
        <field name="inherit_id" ref="operaciones.view_operaciones_brigadas_form" />
         <field name="priority">100</field>
        <field name="type">form</field>
        <field name="arch" type="xml">
              <form string="Employee">
                        <header>
                            <field name="state" widget="statusbar" />
                        </header>
                        <sheet>
                            <div class="oe_title">
                                <label for="ficha" class="oe_edit_only"/>
                                <h1>
                                    <field name="ficha" />
                                </h1>
                                <label for="tipo" class="oe_edit_only"/>
                                <h1>
                                    <field name="tipo"/>
                                </h1>
                                <label for="proyecto" class="oe_edit_only"/>
                                <h1>
                                    <field name="proyecto"/>
                                </h1>
                            </div>
                            <group>
                                <group colspan="8">
                                    <field name="tecnico1"/>
                                    <field name="tecnico2"/>
                                </group>
                                <group colspan="4">
                                    <field name="supervisor"/>
                                    <!-- Your New Field  -->
                                    <field name="mobil_brigada"/>
                                </group>
                            </group>
                        </sheet>
                    </form>
           </field>
        </field>
    </record>