odoo 9 - 字段不存在

时间:2015-12-28 09:00:46

标签: python xml orm openerp odoo-9

按照文档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>

我在“设置”中进行了验证 - &gt;技术 - &gt;数据库结构 - &gt;通过成功添加模型和字段的模型但是我得到了这个错误:

  

num_CN不存在

我尝试通过开发者模式在员工表单视图中添加此字段,但我收到相同的错误!

同一个人可以帮助我找不到的东西吗?

1 个答案:

答案 0 :(得分:2)

首先 - 关于你的模特。

_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'],

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

希望这会对你有所帮助。