如何通过模块将字段添加到many2one中

时间:2016-12-02 09:32:17

标签: python openerp odoo-8

我正在构建一个带有many2one字段的模块(要插入到CRM模块中)但是当我点击添加新值时,我创建的字段没有显示:

What it happens

我在我的文件中写道:

module.py

class tipo_facturacion(models.Model):
  _name = "tipo_facturacion"
  name = fields.Char(string="Tipo Facturación", size=50, required=True)
  otro = fields.Char("Esto", required=True)

class cant_neg_crm(models.Model):  
        _inherit = "crm.lead"
        _columns = {
        'modo_facturacion': fields.many2one('tipo_facturacion' ,'Tipo Facturacion'),   
    }

非常感谢您的帮助!

亲切的问候,

1 个答案:

答案 0 :(得分:1)

您还需要在视图中定义该字段,通过视图继承,您可以这样做。

class tipo_facturacion(models.Model):
    _name = "tipo_facturacion"

    name = fields.Char(string="Tipo Facturación", size=50, required=True)
    otro = fields.Char("Esto", required=True)

class cant_neg_crm(models.Model):  
    _inherit = "crm.lead"
    _columns = {
        'modo_facturacion': fields.many2one('tipo_facturacion' ,'Tipo Facturacion'),   
    }

现在使用继承将此字段(Many2one)添加到现有视图。

(基本视图ID => crm.crm_case_form_view_leads)它可能与您的情况不同。

<record id="new_view_id" model="ir.ui.view">
    <field name="name">crm.lead.form</field>
    <field name="model">crm.lead</field>
    <field name="inherit_id" ref="crm.crm_case_form_view_leads" />
    <field name="priority" eval="40"/>
    <field name="arch" type="xml">
        <!-- field name which you specify here after then new field will be added. -->
        <field name="existing_field_name" position="after">
            <field name="modo_facturacion" />
        </field>
    </field>
</record> 
  

同样,您也可以在列表视图中添加字段。条件是唯一的   你必须在__init__.py和xml文件中添加这个py文件   __openerp__.py文件并重启服务器和升级/安装模块。