postgresql - 如何在打开的erp中的res.partner中添加字段

标签 postgresql python-2.7 openerp-7

我是 OpenErp 新手。 我想在 res.partner 中添加一个新字段“mother_name”。所以我将以下代码添加到 res.partner.py 在列中我添加了这样的

_columns = {
    'name': fields.char('Name', size=128, required=True, select=True),
    'date': fields.date('Date', select=1),
    'title': fields.many2one('res.partner.title', 'Title'),
    'parent_id': fields.many2one('res.partner', 'Related Company'),
    'child_ids': fields.one2many('res.partner', 'parent_id', 'Contacts', domain=[('active','=',True)]), # force "active_test" domain to bypass _search() override    
    'ref': fields.char('Reference', size=64, select=1),
    'date_delivery': fields.date('Expected Delivery Date'),
    'mother_ln': fields.char('Mother', size=64),
     .
     .
     .
     }

现在在 res_partner_view.xml 中。我正在使用以下代码

        <record id="view_partner_tree" model="ir.ui.view">
            <field name="name">res.partner.tree</field>
            <field name="model">res.partner</field>
            <field eval="8" name="priority"/>
            <field name="arch" type="xml">
                <tree string="Contacts">
                    <field name="name"/>
                    <field name="function" invisible="1"/>
                    <field name="phone"/>
                    <field name="email"/>
                    <field name="user_id" invisible="1"/>
                    <field name="is_company" invisible="1"/>
                    <field name="country" invisible="1"/>
                    <field name="country_id" invisible="1"/>
                    <field name="date_delivery"/>
                    <field name="mother_ln"/>
                    <field name="parent_id" invisible="1"/>
                </tree>
            </field>
        </record>


<record id="view_partner_form" model="ir.ui.view">
            <field name="name">res.partner.form</field>
            <field name="model">res.partner</field>
            <field eval="1" name="priority"/>
            <field name="arch" type="xml">
                <form string="Partners" version="7.0">
                <sheet>
                    <field name="image" widget='image' class="oe_left oe_avatar" options='{"preview_image": "image_medium", "size": [90, 90]}'/>
                    <div class="oe_title">
                        <div class="oe_edit_only">
                            <label for="name"/> (
                            <field name="is_company" on_change="onchange_type(is_company)" class="oe_inline"/> <label for="is_company" string="Is a Company?"/>)
                        </div>
                        <h1>
                            <field name="name" default_focus="1" placeholder="Name" />
                        </h1>
                        <field name="parent_id"
                            placeholder="Company"
                            domain="[('is_company', '=', True)]" context="{'default_is_company': True, 'default_supplier': supplier}"
                            attrs="{'invisible': [('is_company','=', True),('parent_id', '=', False)]}"
                            on_change="onchange_address(use_parent_address, parent_id)"/>
                        <!-- <field name="category_id" widget="many2many_tags" placeholder="Tags..."/> -->
                    </div>
                    <div class="oe_right oe_button_box" name="buttons"> </div>

                    <group>
                        <group>
                            <label for="type" attrs="{'invisible': [('parent_id','=', False)]}"/>
                            <div attrs="{'invisible': [('parent_id','=', False)]}" name="div_type">
                                <field class="oe_inline"
                                    name="type"/>
                            </div>

                            <label for="street" string="Address"/>
                            <div>
                                <field name="use_parent_address" class="oe_edit_only oe_inline"
                                       on_change="onchange_address(use_parent_address, parent_id)"
                                       attrs="{'invisible': [('parent_id','=', False),('use_parent_address','=',False)]}"/>
                                <label for="use_parent_address" class="oe_edit_only" attrs="{'invisible': [('parent_id','=', False),('use_parent_address','=',False)]}"/>
                                <button name="open_parent" type="object" string="(edit company address)" class="oe_link oe_edit_only"
                                        attrs="{'invisible': ['|',('parent_id','=', False),('use_parent_address','=',False)]}"/>
                                <field name="street" placeholder="Street..."  attrs="{'readonly': [('use_parent_address','=',True)]}"/>
                                <field name="street2"  attrs="{'readonly': [('use_parent_address','=',True)]}"/>
                                <div class="address_format">
                                    <field name="city" placeholder="City" style="width: 40%%" attrs="{'readonly': [('use_parent_address','=',True)]}"/>
                                    <field name="state_id" class="oe_no_button" placeholder="State" style="width: 37%%" options='{"no_open": True}' on_change="onchange_state(state_id)" attrs="{'readonly': [('use_parent_address','=',True)]}"/>
                                    <field name="zip" placeholder="ZIP" style="width: 20%%" attrs="{'readonly': [('use_parent_address','=',True)]}"/>
                                </div>
                                <field name="country_id" placeholder="Country" class="oe_no_button" options='{"no_open": True}' attrs="{'readonly': [('use_parent_address','=',True)]}"/>
                            </div>

                        </group>
                        <group>
                          <!-- We Don't require Job Position for Customer -->
                          <!--   <field name="function" placeholder="e.g. Sales Director"
                                attrs="{'invisible': [('is_company','=', True)]}"/> -->
                            <field name="phone" placeholder="e.g. +32.81.81.37.00"/>
                            <field name="mobile"/>
                            <field name="fax"/>
                            <field name="email" widget="email"/>
                            <!-- <field name="title" domain="[('domain', '=', 'contact')]"
                                options='{"no_open": True}' attrs="{'invisible': [('is_company','=', True)]}" /> -->
                        </group>
                        <field name="date_delivery"/>
                        <field name="mother_ln"/>
                        </group>
                        .
                        .
                        .
                 </record>

最佳答案

Better is you inherit that code and add your field rather doing changes to main code.
for your py file 

class res_partner(osv.osv):

 _inherit= 'res.partner'

 _columns = {
     'mother_ln': fields.char('Mother', size=64),
     'father_name': fields.char('Father', size=64),
 # this is comment. -> you can add as many types of fields as you want - eg. char ,
    #                   boolean, float, integer, one2many, many2one etc. 
 }

res_partner()


for your xml file :-

<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">
    <field name="date_delivery" position="after">
        <field name="mother_ln" />
        <field name="father_name" />
<!--comment- likewise this is your view, add all your fields here in view -->
    </field>
  </field>
</record>

关于postgresql - 如何在打开的erp中的res.partner中添加字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21325582/

相关文章:

json - 从 postgres 读取数据并在 expressjs 中使用数据

python - 如何将 travis ci 与 Python 中的 codeclimate 测试覆盖率集成?

python - Odoo 按钮单击打开弹出窗口和其中的文本

python - 在 Openerp 7 登录页面上更改 Logo 并由 OpenERP 提供支持

javascript - Postgres 的 Sequelize-auto

ruby-on-rails - 如何检查一个数字是否在 activerecord 的范围内?

python - 在 PyCharm 中运行 OpenERP 7 单元测试

email - 如何在 OpenERP 7 中向讨论组发送电子邮件?

sql - 有 3 个实体,根据其他 2 个实体的关系数(计数)得到第三个实体

Python 2.7 类属性奇怪的行为