按照文档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不存在
我尝试通过开发者模式在员工表单视图中添加此字段,但我收到相同的错误!
同一个人可以帮助我找不到的东西吗?
答案 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 文件中的更改。
希望这会对你有所帮助。