Openerp 使用模块:ParseError:“添加自定义字段时出错”;“拱门”;解析文件时

Openerp 使用模块:ParseError:“添加自定义字段时出错”;“拱门”;解析文件时,openerp,odoo-9,Openerp,Odoo 9,我正在尝试使用模块向Odoo 9res.partner模型添加自定义字段。我使用了scoffold命令来生成模块文件,并将以下代码添加到models.py和views.xml中 型号/型号.py from openerp import models, fields, api class SeicoPartner(models.Model): _name = 'res.partner' _inherit = 'res.partner' no_of_ac = fields

我正在尝试使用模块向Odoo 9
res.partner
模型添加自定义字段。我使用了scoffold命令来生成模块文件,并将以下代码添加到models.py和views.xml中

型号/型号.py

from openerp import models, fields, api
class SeicoPartner(models.Model):
    _name  = 'res.partner'
    _inherit  = 'res.partner'

   no_of_ac = fields.Integer('No of AC', default=0)
   review = fields.Char('Company Review')
views/views.xml

<openerp>
<data>
    <record id="res_partner_field_ac" model="ir.ui.view">
        <field name="no_of_ac">10</field>
    </record>
</data>
</openerp>

10
从应用程序屏幕安装此模块时,我遇到以下错误:

Traceback (most recent call last):
  ...
  File "C:\Program Files (x86)\Odoo 9.0-20160719\server\openerp\addons\base\ir\ir_ui_view.py", line 344, in create
ParseError: "arch" while parsing file:///C:/Program%20Files%20(x86)/Odoo%209.0-20160719/server/openerp/addons/mymodule1/views/views.xml:4, near
<record id="res_partner_field_ac" model="ir.ui.view">
            <field name="no_of_ac">10</field>

        </record>
回溯(最近一次呼叫最后一次):
...
文件“C:\Program Files(x86)\Odoo 9.0-20160719\server\openerp\addons\base\ir\ir\u ui\u view.py”,第344行,在创建中
ParseError:解析时出现“arch”file:///C:/Program%20Files%20(x86)/Odoo%209.0-20160719/server/openerp/addons/mymodule1/views/views.xml:4,近
10

Settings->Database Structure->Fields
中,我可以看到res.partner有
no\u of_ac
字段,但在编辑任何客户详细信息时,该字段不可见。

这是因为您缺少描述视图类型(xml或html)的arch字段,在大多数情况下,xml都很好

您还缺少模型名称和视图名称,因此odoo不知道您的视图属于哪个模型。您还必须指定要覆盖的现有模型表单以及新字段的位置,在本例中,我使用xpath表达式在父视图中的网站字段后显示字段,它可以位于您希望的任何位置

<openerp>
<data>
    <record id="res_partner_field_ac" model="ir.ui.view">
      <field name="name">res.partner.form</field>
      <field name="model">res.partner</field>
      <field name="inherit_id" ref="base.view_partner_form"/>
      <field name="arch" type="xml">
        <xpath expr="//field[@name='website']" position="after">
          <field name="no_of_ac" />
        </xpath>
      </field>
    </record>
</data>
</openerp>

这是因为您缺少描述视图类型(xml或html)的arch字段,在大多数情况下,xml都很好

您还缺少模型名称和视图名称,因此odoo不知道您的视图属于哪个模型。您还必须指定要覆盖的现有模型表单以及新字段的位置,在本例中,我使用xpath表达式在父视图中的网站字段后显示字段,它可以位于您希望的任何位置

<openerp>
<data>
    <record id="res_partner_field_ac" model="ir.ui.view">
      <field name="name">res.partner.form</field>
      <field name="model">res.partner</field>
      <field name="inherit_id" ref="base.view_partner_form"/>
      <field name="arch" type="xml">
        <xpath expr="//field[@name='website']" position="after">
          <field name="no_of_ac" />
        </xpath>
      </field>
    </record>
</data>
</openerp>

您正在
ir.ui.view
数据模型中插入新记录

<openerp>
<data>
    <record id="res_partner_field_ac" model="ir.ui.view">
        <field name="no_of_ac">10</field>
    </record>
</data>
</openerp>

注意:您遇到了一个问题,因为
arch
ir.ui.view
模型中的一个必填字段。

您正在
ir.ui.view
数据模型中插入一条新记录

<openerp>
<data>
    <record id="res_partner_field_ac" model="ir.ui.view">
        <field name="no_of_ac">10</field>
    </record>
</data>
</openerp>

注意:您遇到了一个问题,因为
arch
ir.ui.view
模型中的一个必填字段。

如果要添加数据记录,应使用
res.partner
作为模型并定义所需字段:

<record id="res_partner_field_ac" model="res.partner">
    <field name="no_of_ac">10</field>
    <field name="name">NEW PARTNER NAME</field>
    <!-- define required fields -->
</record>

10
新合作伙伴名称

要定义视图,请查看

如果要添加数据记录,应使用
res.partner
作为模型并定义所需字段:

<record id="res_partner_field_ac" model="res.partner">
    <field name="no_of_ac">10</field>
    <field name="name">NEW PARTNER NAME</field>
    <!-- define required fields -->
</record>

10
新合作伙伴名称

要定义视图,请查看

您不能只将字段添加到视图中:您需要声明视图的另一个组件,将字段“附加”到该组件。我已尝试使用此方法解决错误,但仍然存在“元素”错误,无法在父视图中找到…现在告诉我该怎么解决它。因为我是Odoo的新用户,所以需要您的帮助。@AlessandroRuffolo,我已经解决了这个问题,感谢您指出,您不能只将字段添加到视图中:您需要声明“附加”到的视图的另一个组件字段我已尝试此方法来解决我的错误,但仍然存在“无法在父视图中找到元素“”的错误”…现在告诉我应该如何解决它。由于我是Odoo的新用户,因此需要您的帮助。@AlessandroRuffolo,我已经解决了这个问题,感谢您指出它。我已尝试此方法,但仍然存在以下分析错误:关系“res\u partner”的新行违反了检查约束“res\u partner\u check\u name”此错误,因为当名称为空时,类型字段必须为“contact”,因此在您的情况下,名称是必需的,因此添加到您的代码中我已尝试过,但仍有以下分析错误:“关系“res\u partner”的新行违反了检查约束”res_partner_check_name“此错误是因为当名称为空时,类型字段必须为“contact”,因此在您的情况下,名称是必需的,因此请添加到代码中