2015-12-28 10 views
1

следовать документации Odoo 9.0, я создал новый модуль, который я создал новую модель следующим образом:odoo 9 - поле не существует

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> 

Я verirfy в Настройки -> Технический -> База данных Структура -> модели, которые были добавлены модель и поле успехом Но я получаю эту ошибку:

num_CN не существует

Я пытаюсь добавить это поле в форме работника зрения на режим разработчика, но я получаю ту же ошибку!

Может ли это помочь мне, чего не хватает?

ответ

1

Прежде всего - о вашей модели.

_name = 'payModel.payModel' означает, что при установке модуля Odoo создаст новую таблицу с именем payModel_payModel. После этого в системе будет ваш пользовательский объект - payModel.payModel.

_inherit = 'hr.employee' означает, что вы расширяете таблицу hr_employee (Odoo объект - hr.employee).

Если вы хотите создать новую таблицу и использовать свой новый объект, вам необходимо удалить _inherit = 'hr.employee'. Если вам необходимо продлить hr.employee (например, добавлять новые поля или добавить некоторую логику для моделирования и т.д.), необходимо удалить _name = 'payModel.payModel'

Вторая проблема, которая может быть это зависимости. Если ваш модуль зависит от ч модуля вы должны отметить это в __openerp__.py вашего модуля:

'depends': ['hr'], 

И еще одна вещь. Убедитесь, что models.py импортирован в __init__.py вашего модуля. Перезагрузите openerp-сервер перед обновлением вашего модуля после изменений в .py файлов. Odoo не видит изменений в .py файлов без перезагрузки.

Надеюсь, это вам поможет.

Смежные вопросы