首页 > 解决方案 > 向 hr.employees 添加字段

问题描述

尝试将字段添加到模型 hr.employees (在address_home_id之后的cmp

这是我的代码。

__manifest__.py

'name': 'Add Fields to HR module',
'description': 'Add Fields to HR Module',
'depends': ['base','hr'],
'data':[
  'views/res_hr_view.xml',  
],

res_hr.py

 from odoo import models, fields, api 
 class ResHR(models.Model):
    _inherit = 'hr'
    cmp = fields.Char()

res_hr_view.xml

 <?xml version="1.0"?>
  <odoo>
    <record id="res_hr_form_inherited"   
     model="ir.ui.view"> 
     <field name="name">Add Fields HR Employees</field> 
     <field name="model">hr.employee</field> 
     <field name="inherit_id" ref="hr.view_employee_form"/> 
     <field name="arch" type="xml"> 
     <field name="address_home_id" position="after"> 
       <field name="cmp" string="C.M.P"/>
       </field>
    </field>
   </record>

但是当我尝试安装它时显示下一个错误。

   Field 'cmp' does not exist error on inherited view.
   > /home/odoo/odoo-dev/odoo/odoo/models.py(1083)_validate_fields()
   -> raise ValidationError("%s\n\n%s" % (_("Error while validating 
   constraint"), tools.ustr(e)))

我究竟做错了什么 ?

标签: pythonxmlinheritanceodooodoo-10

解决方案


确保您的 res_hr.py 已导入。通常一个模块/应用程序看起来像

models/
|-- __init__.py
|-- model1.py
|-- model2.py
views/
|-- model1_views.xml
|-- model2_views.xml
__init__.py
__manifest__.py

__init__.py应该导入和应该导入models和。准备好模块安装/更新时重新启动服务器或使用开发模式让 Odoo 自行处理。models/__init__.pymodel1model2


推荐阅读