首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >向现有模块odoo 8添加一个新字段

向现有模块odoo 8添加一个新字段
EN

Stack Overflow用户
提问于 2017-02-07 14:10:51
回答 2查看 1.1K关注 0票数 0

我想在销售模块的机会视图中添加一个新的字段。我已经创建了一个新的模块.when,我试图安装,它显示了以下错误(在快照中提到)-

下面是我想要添加字段的表单。

以下是.py文件:

代码语言:javascript
复制
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import datetime
import math
from datetime import date
from openerp.osv import osv, fields, orm

class crm_lead(osv.osv):
    _inherit = "crm.lead"
    _description="modification"
    _columns = {
        'quantite': fields.text('Quantité'),
    }

这是xml文件:

代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data>
        <record id="crm_case_tree_view_oppor" model="ir.ui.view">
            <field name="name">crm.case.tree.view.oppor</field>
            <field name="model">crm.lead</field>
            <field name="view_type">tree</field>
            <field name="inherit_id" ref="crm.crm_case_tree_view_oppor"/>
            <field name="arch" type="xml">
                <tree>
                    <xpath expr="//field[@name='probability']" position="after">
                        <field name="quantite"/>
                    </xpath>
                </tree>
            </field>
        </record>
    </data>
</openerp>    
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-02-07 14:20:32

我注意到了另一个继承自同一树视图的视图。这就是他们所做的。他们没有使用xpath,也不知道为什么。我想我以前有过,但是值得一试。

代码语言:javascript
复制
    <record id="view_crm_opportunity_geo_assign_tree" model="ir.ui.view">
        <field name="name">crm.lead.geo_assign.tree.inherit</field>
        <field name="model">crm.lead</field>
        <field name="inherit_id" ref="crm.crm_case_tree_view_oppor"/>
        <field name="arch" type="xml">
            <field name="partner_id" position="after">
                <field name="partner_assigned_id"/>
                <field name="date_assign" invisible="1"/>
             </field>
        </field>
    </record>

所以我想你的应该是这样的。您必须更改视图的名称才能与您的示例相匹配,但您可能有了这样的想法。

代码语言:javascript
复制
    <record id="view_crm_opportunity_geo_assign_tree" model="ir.ui.view">
        <field name="name">crm.lead.geo_assign.tree.inherit</field>
        <field name="model">crm.lead</field>
        <field name="inherit_id" ref="crm.crm_case_tree_view_oppor"/>
        <field name="arch" type="xml">
            <field name="probability" position="after">
                <field name="quantite"/>
             </field>
        </field>
    </record>
票数 1
EN

Stack Overflow用户

发布于 2017-02-07 15:18:01

菲利普·斯塔克的回答是正确的,但我想在这里提到两件事。

  1. 当使用Odoo 8时,请使用新的API,因为它是未来的证明.xml文件不会随着它的变化而改变,所以在我的第2点中查找它。
代码语言:javascript
复制
from openerp import models, fields

class CrmLead(models.Model):
    _inherit = "crm.lead"
    _name = "crm.lead"  # optional

    quantite = fields.Text(string="Quantité")
  1. 扩展视图时不需要指定视图类型。只需定义对原始视图的扩展即可。您的xml应该类似于Phillip的答案,或者类似于xpath:
代码语言:javascript
复制
<?xml version="1.0" encoding="UTF-8"?>
<openerp>
    <data>
        <record id="crm_case_tree_view_oppor" model="ir.ui.view">
            <field name="name">crm.case.tree.view.oppor</field>
            <field name="model">crm.lead</field>
            <field name="inherit_id" ref="crm.crm_case_tree_view_oppor"/>
            <field name="arch" type="xml">
                <xpath expr="//field[@name='probability']" position="after">
                    <field name="quantite" />
                </xpath>
            </field>
        </record>
    </data>
</openerp>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42092006

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档