【问题标题】:odoo 9 - Field does not existodoo 9 - 字段不存在
【发布时间】:2015-12-28 09:00:45
【问题描述】:

按照文档 Odoo 9.0,我创建了一个新模块,我创建了一个新模型,如下所示:

models.py

# -*- coding: utf-8 -*-

from openerp import models, fields, api

class payModel(models.Model):
    _name = 'payModel.payModel'
    _inherit = 'hr.employee'

    num_CN = fields.Char("CN°")

和我的表单视图:

<record model="ir.ui.view" id="payModel_form_view">
    <field name="name">payModel.num_CN</field>
    <field name="model">hr.employee</field>
    <field name="inherit_id" ref="hr.view_employee_form"/>
    <field name="arch" type="xml">
        <data>
            <xpath expr="//field[@name='bank_account_id']" position="after">
                <field name="num_CN"/>
            </xpath>
        </data>
    </field>
</record>

我在设置 -> 技术 -> 数据库结构 -> 模型中验证成功添加了模型和字段但我收到此错误:

num_CN 不存在

我尝试通过开发人员模式在员工表单视图中添加此字段,但出现同样的错误!

sameone 可以帮我解决缺少的问题吗?

【问题讨论】:

    标签: python xml orm openerp odoo-9


    【解决方案1】:

    首先 - 关于你的模型。

    _name = 'payModel.payModel' 表示当您安装模块时,Odoo 将创建名为 payModel_payModel 的新表。之后系统中将是您的自定义对象 - payModel.payModel

    _inherit = 'hr.employee' 表示您扩展表 hr_employee(Odoo 对象 - hr.employee)。

    如果你想创建新表并使用你的新对象,你需要删除_inherit = 'hr.employee'。如果您需要扩展hr.employee(例如添加新字段或向模型添加一些逻辑等),您需要删除_name = 'payModel.payModel'

    第二个问题可能是依赖关系。如果您的模块依赖于 hr 模块,您需要在模块的 __openerp__.py 中标记:

    'depends': ['hr'],
    

    还有一件事。确保将 models.py 导入到您模块的 __init__.py 中。 .py 文件更改后更新模块之前重新启动 openerp-server。在没有重启的情况下,Odoo 不会看到 .py 文件的变化。

    希望对你有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-12
      • 1970-01-01
      • 2021-01-30
      • 1970-01-01
      • 1970-01-01
      • 2022-01-19
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多