odoo 9 - 字段不存在
odoo 9 - Field does not exist
按照文档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>
我在设置 -> 技术 -> 数据库结构 -> 模型中验证模型和字段已成功添加但是我收到此错误:
the num_CN does not exist
我尝试通过开发人员模式在员工表单视图中添加此字段,但我遇到了同样的错误!
同一个人可以帮我看看缺少什么吗?
首先 - 关于您的模型。
_name = 'payModel.payModel'
意味着当您安装模块时,Odoo 将创建名称为 payModel_payModel 的新 table。在此之后系统中将是您的自定义对象 - payModel.payModel.
_inherit = 'hr.employee'
意味着你展开 table hr_employee(Odoo object - hr.employee).
如果您想创建新的 table 并使用您的新对象,您需要删除 _inherit = 'hr.employee'
。如果您需要扩展 hr.employee(例如添加新字段或向模型添加一些逻辑等),您需要删除 _name = 'payModel.payModel'
第二个问题可能是dependencies。如果您的模块依赖于 hr 模块,您需要在模块的 __openerp__.py 中标记:
'depends': ['hr'],
还有一件事。确保 models.py 被导入到模块的 __init__.py 中。在 .py 文件更改后更新模块之前重新启动 openerp-server。 Odoo 在不重启的情况下看不到 .py 文件中的更改。
希望对您有所帮助。
按照文档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>
我在设置 -> 技术 -> 数据库结构 -> 模型中验证模型和字段已成功添加但是我收到此错误:
the num_CN does not exist
我尝试通过开发人员模式在员工表单视图中添加此字段,但我遇到了同样的错误!
同一个人可以帮我看看缺少什么吗?
首先 - 关于您的模型。
_name = 'payModel.payModel'
意味着当您安装模块时,Odoo 将创建名称为 payModel_payModel 的新 table。在此之后系统中将是您的自定义对象 - payModel.payModel.
_inherit = 'hr.employee'
意味着你展开 table hr_employee(Odoo object - hr.employee).
如果您想创建新的 table 并使用您的新对象,您需要删除 _inherit = 'hr.employee'
。如果您需要扩展 hr.employee(例如添加新字段或向模型添加一些逻辑等),您需要删除 _name = 'payModel.payModel'
第二个问题可能是dependencies。如果您的模块依赖于 hr 模块,您需要在模块的 __openerp__.py 中标记:
'depends': ['hr'],
还有一件事。确保 models.py 被导入到模块的 __init__.py 中。在 .py 文件更改后更新模块之前重新启动 openerp-server。 Odoo 在不重启的情况下看不到 .py 文件中的更改。
希望对您有所帮助。