【问题标题】:Problem with adding a new field to an existing model向现有模型添加新字段时出现问题
【发布时间】:2019-08-22 10:12:36
【问题描述】:

我创建了一个新模块以便将字段添加到视图中,但出现此错误:“字段 'cin' 不存在

我的 client.xml 代码:

<record id="view_partner_form_inherit" 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"/>
    <!-- Leave the 'arch' field open -->
    <field name="arch" type="xml">
        <!-- Put your custom field and its position inside the 'arch' field.
             Use 'xpath' tag to create a more precise positioning -->
       <xpath expr="//group/group/field[@name='name']" position="after">
            <field name="cin"/>
        </xpath>
    <!-- Now, close the 'arch' field -->
    </field>
</record>

我希望你能帮助我。

【问题讨论】:

  • 我的 client.py 代码:从 odoo 导入模型,字段类 SaleOrder(models.Model): _inherit = 'res.partner' cin = fields.Char('cin')
  • 您的 client.py 看起来不错。您是否在 init.py 中声明了此文件?此外,您需要在对 py 文件进行更改后重新启动您的 odoo 服务。
  • 在我的模型/init.py 中:来自 .import 客户端来自 .import 模型
  • 在我的 init.py 中:来自 .import 模型
  • 是否重启了odoo服务并升级了模块?

标签: field odoo


【解决方案1】:

请按照以下步骤操作:

您可以通过两种方式向 res.partner 模型添加新字段。

  1. 卸载模块。然后在 python 和 xml 文件中添加新字段,然后重新启动服务器。服务器重启后再次安装模块。
  2. 但如果您不想卸载模块,请先从 xml 和 python 文件中删除新字段。重新启动服务器。转到 odoo 应用程序页面并打开模块进行升级。不要点击升级按钮。保持打开状态。然后在 python 和 xml 文件中添加新字段并重新启动 odoo 服务。服务器重启后点击升级按钮。这样会添加新的字段。

希望这对你有用。

【讨论】:

  • 终于成功了,但是这个过程没有逻辑。每次需要添加字段时我都会这样做??
  • 每次在 res.partner 表中添加新字段时,您都必须遵循这些步骤。我们知道 res_partner 模型是基础模型,它会在您打开 odoo 时加载。
  • 但即使我尝试在其他模块中添加字段时,我也遇到了同样的问题
  • 没有。在 hr_employee、sale_order 等其他表中,如果添加新字段,则必须重新启动服务器,然后升级模块。此问题仅与 res_partner 模型有关。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2010-10-24
  • 1970-01-01
  • 1970-01-01
  • 2020-02-13
  • 2022-06-17
  • 2015-12-08
  • 1970-01-01
相关资源
最近更新 更多