在Openerp的自定义模块中添加新字段和隐藏不需要的字段

时间:2014-01-29 09:53:28

标签: openerp openerp-7

我是openerp的新手。我想为继承的自定义模块添加新字段,同时我想删除新创建的自定义模块中的不需要的字段。我想添加一些像Mothername和Fathername这样的细节我也想要隐藏不需要的细节,如工作岗位和网站。任何人都可以告诉我。 提前致谢

我的代码:

初始化的.py

import lead

OpenERP的的.py

{
'name': 'Lead Information',
'version': '0.1',
'category': 'Tools',
'description': """This module is Lead information.""",
'author': 'Nitesh',
'website': '',
'depends': ['base'],
'init_xml': ['lead_view.xml'],
'update_xml': [],
'demo_xml': [],
'installable': True,
'active': True,
'application': True
}

lead.py

from osv import osv
from osv import fields

class cus(osv.osv):
 _name = "lead.partner"
 _inherit = "res.partner"
 _description = "This table is for keeping lead data"
 _columns = {
    'mothername': fields.char('Mother Name',size=10,required=True)
   }

lead_view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- ===================== This is tree layout =============================-->
<record id="lead_tree" model="ir.ui.view">
        <field name="name">Lead</field>
        <field name="model">lead.partner</field>
        <field name="arch" type="xml">
            <field name="mothername"/> 
            <field name="website"  position="attributes"><!--removed / from the end-->
                <attribute name="invisible">True</attribute>
            </field>
        </field>
    </record>

<!-- ========================This is Form layout===============================-->
    <record id="lead_form" model="ir.ui.view">
        <field name="name">Lead</field>
        <field name="model">lead.partner</field>
        <field name="arch" type="xml">
            <field name="mothername"/>
            <field name="function"  position="attributes"><!--removed / from the end-->
                <attribute name="invisible">True</attribute>
            </field>

       </field>
    </record>

<!-- ========================= Action Layout ============================= -->
    <record id="action_lead" model="ir.actions.act_window">
        <field name="name">Lead</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">res.partner</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
        <field name="view_id" ref="lead_tree"/>
    </record>
       <!-- ===========================Menu Settings=========================== -->
    <menuitem name = "Lead" id = "menu_lis_lab" action="action_lead"/>

</data>
</openerp>

2 个答案:

答案 0 :(得分:2)

如果要删除任何字段而不是使用此字段,

<field name="website"  position="replace"/>

您可以删除父视图中的字段。这是正确的方式。

您可以在position属性中使用这些值:

  • inside(默认值):您的值将附加在标记

  • 之后:在标记

  • 之后添加内容
  • 之前:在标记之前添加内容

  • 替换:替换标签的内容。

了解更多详情 - http://openerp-server.readthedocs.org/en/latest/03_module_dev_03.html 希望这会对你有所帮助。

答案 1 :(得分:0)

首先添加在* .py文件中创建字段并升级您的自定义模块,然后在* .xml中添加字段并再次升级模块,它将完美地工作。现在我可以添加字段并隐藏不需要的字段在我的自定义模块中 例如:我想在“JObPostion”下面添加Mothername和Father名称并隐藏网站字段 以下是工作代码

我的代码

lead_view.xml

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<!-- ===================== This is tree layout =============================-->
<record id="lead_tree" model="ir.ui.view">
        <field name="name">Lead</field>
        <field name="model">res.partner</field>
        <field name="arch" type="xml">
            <tree string="lead">
                <field name = "name"/>
            </tree>
        </field>
    </record>

<!-- ========================This is Form layout===============================-->
    <record id="view_res_partner_inherited" model="ir.ui.view">
        <field name="name">view.res.partner.inherited</field>
        <field name="model">res.partner</field>
        <field name="inherit_id" ref="base.view_partner_form" />
        <field name="arch" type="xml">
            <data>
                <field name="website" position="replace"/>
                <field name="function" position="after">
                    <field name="mothername"/>
                    <field name="fathername"/>
                </field>
            </data>    
        </field>
    </record>

<!-- ========================= Action Layout ============================= -->
    <record id="action_lead" model="ir.actions.act_window">
        <field name="name">Lead</field>
        <field name="type">ir.actions.act_window</field>
        <field name="res_model">res.partner</field>
        <field name="view_type">form</field>
        <field name="view_mode">tree,form</field>
        <field name="view_id" ref="lead_tree"/>
    </record>
       <!-- ===========================Menu Settings=========================== -->
    <menuitem name = "Lead" id = "menu_lis_lab" action="action_lead"/>

</data>
</openerp>

lead.py

from osv import osv
from osv import fields

class res_partner(osv.osv):
 _inherit = "res.partner"
 _description = "adding fields to res.partner"
 _columns = { 
    'mothername': fields.char('Mother Name',size=64,required=True),
    'fathername': fields.char('Father Name',size=64,required=True)
 }