Добавьте поля в hr.employees

Попытка добавить поля в модель hr.employees (cmp после address_home_id)

Это мой код.

__манифест__.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)))

Что я делаю неправильно ?

Я думаю, ты имеешь в виду _inherit='hr.employee'

yorodm 08.04.2019 22:17

Привет @yorodm, правильно должно быть «hr.employee». Я внес изменение, но получаю ту же ошибку.

ayar 08.04.2019 22:52

Вы перезапускали Odoo после изменения файла *py? Если нет, сделайте это. Если ошибка повторяется, скопируйте и вставьте журнал примерно за 5 строк до первого сообщения об ОШИБКЕ.

Adan Cortes 09.04.2019 00:57
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
1
3
454
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Убедитесь, что ваш файл res_hr.py импортирован. Обычно модуль/приложение выглядит так

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

__init__.py должен импортировать models, а models/__init__.py должен импортировать model1 и model2. Перезапустите сервер, когда он будет готов к установке/обновлению модуля, или используйте режим разработки, чтобы Odoo справился с этим самостоятельно.

Спасибо @CZoellner!! это было то

ayar 09.04.2019 16:24

Другие вопросы по теме