继承res.partner的形式

时间:2015-04-04 01:05:15

标签: openerp odoo

我创建了一个新的类fleet_agent,它继承自res.partner而没有问题

class fleet_agent(osv.Model): 
    _name = 'fleet.agent'
    _inherit = ['res.partner']
    _columns = {
    'test': fields.char('Test', help='Test'),
}

然后fleet_agent_form继承base.view_partner_form也没问题

<record id="fleet_agent_form" model="ir.ui.view"> 
            <field name="name">fleet.agent.form</field>
            <field name="model">fleet.agent</field>
            <field name="inherit_id" ref="base.view_partner_form" />
            <field name="arch" type="xml">
                <field name="state_id" position="before">
                    <field name="x" />
                </field>
            </field>
</record>

我的问题是这个表单不会显示为view_partner_form的格式,而且所有字段都没有任何顺序?

5 个答案:

答案 0 :(得分:1)

您已经创建了一个新模型&#39; fleet.agent&#39;通过扩展基地&res ;partner&#39;。为了显示所有字段,您需要在xml中指定字段或通过删除&#39; fleet.agent&#39;来使用经典继承。并将您的字段添加到基地&#39; res.partner&#39;。

class fleet_agent(osv.Model): 
    _inherit = 'res.partner'
    _columns = {
              'field': fields.char('Name', help='help'),
    }

在xml文件中:

<field name="model">fleet.agent</field>

答案 1 :(得分:0)

尝试以下,

class fleet_agent(osv.Model): 
    _inherit = ['res.partner']
    _columns = {
    'test': fields.char('Test', help='Test'),
}

<record id="fleet_agent_form" model="ir.ui.view"> 
    <field name="name">fleet.agent.form</field>
    <field name="model">res.partner</field>
    <field name="inherit_id" ref="base.view_partner_form" />
    <field name="arch" type="xml">
        <field name="state_id" position="before">
            <field name="x" />
        </field>
    </field>
</record>

从python代码中删除_name = 'fleet.agent',创建新模型,在扩展任何父模型时,在xml中必须将父模型名称写入视图

<field name="model">res.partner</field>

因此,您将获得基类功能的扩展功能。

答案 2 :(得分:0)

class Partner(model.Model): 
    _inherit = 'res.partner'
    test = fields.Char(string='Test', help='Test'),
}

<record id="fleet_agent_form" model="ir.ui.view"> 
            <field name="name">partner.test</field>
            <field name="model">res.partner</field>
            <field name="inherit_id" ref="base.view_partner_form" />
            <field name="arch" type="xml">
                    <field name="test" />
            </field>
</record>

答案 3 :(得分:0)

要将表格复制到您的模样,您应使用继承关键字而不是继承。您还必须复制基本模块的合作伙伴表单的视图定义并进行更改,扩展不会帮助您创建新表。 Source

更新:有关os继承方式的其他信息:

Update2:看起来像你正确的方式:有一种third继承方式:使用继承关键字并为新模型指定新的_name。

enter image description here

答案 4 :(得分:0)

  1. 使用:
class res_partner(models.Model):
    _inherit = 'res.partner'
    test = fields.Char(string='test')`
  1. 从控制台升级模块:
./odoo-bin -u [module_name] -c [configuration_file