2015-07-28 7 views
1

Я пытаюсь добавить свой собственный пользовательский модуль в odoo для тестирования. Тем не менее, я постоянно получаю ошибку ниже. Ниже приведен код моего кода. Пожалуйста, помогите в этом отношенииOdoo [OpenERP] Пользовательский модуль KeyError issue

_init.py

import select_custom 

select_custom.py

from openerp.osv import osv, fields 

class select_custom(osv.Model): 
    _inherit = 'select.custom' 

    _columns = { 
     'productChoose' : fields.many2one('hr.employee', 'Product Choose') 
     } 

select_custom_view.xml

<?xml version="1.0" encoding="utf-8"?> 
<openerp> 
    <data> 
     <record id="view_custom_tick_box_form" model="ir.ui.view"> 
      <field name="name">res.custom.tick.form.inherit</field> 
      <field name="model">select.custom</field> 
      <field name="inherit_id" ref="purchase.purchase_order_form"/> 
      <field name="arch" type="xml"> 
       <field name="date_order" position="after"> 
        <field name="productChoose"/> 
       </field> 
      </field> 
     </record> 
    </data> 
</openerp> 

Я получаю ошибку ниже:

Traceback (most recent call last): 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\http.py", line 537, in _handle_exception 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\http.py", line 574, in dispatch 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\http.py", line 310, in _call_function 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\service\model.py", line 113, in wrapper 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\http.py", line 307, in checked_call 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\http.py", line 803, in __call__ 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\http.py", line 403, in response_wrap 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\openerp\addons\web\controllers\main.py", line 948, in call_button 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\openerp\addons\web\controllers\main.py", line 936, in _call_kw 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\api.py", line 241, in wrapper 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\openerp\addons\base\module\module.py", line 450, in button_immediate_install 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\api.py", line 241, in wrapper 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\openerp\addons\base\module\module.py", line 498, in _button_immediate_function 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\modules\registry.py", line 370, in new 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\modules\loading.py", line 355, in load_modules 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\modules\loading.py", line 255, in load_marked_modules 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\modules\loading.py", line 152, in load_module_graph 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\modules\registry.py", line 163, in load 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\models.py", line 595, in _build_model 
    File "C:\Program Files (x86)\Odoo 8.0-20150621\server\.\openerp\modules\registry.py", line 102, in __getitem__ 
KeyError: 'select.custom' 

ответ

3

Вы используете _inherit = 'select.custom' который является наследственным существующий объект, поэтому вы должны убедиться, что таблица объектов уже загружена в память.

Используйте _name вместо _inherit для загрузки этой таблицы.

Bests,

+0

Спасибо, и, тем не менее, я тоже это выяснил некоторое время назад, и теперь я обновил свой код ниже, но все равно получаю ту же ошибку. 1. удалил строку '_inherit = 'select.custom'' from ** select_custom .py ** 2. удалите строку '<имя поля =" inherit_id "ref =" purchase.purchase_order_form "/>' from ** select_custom_view.xml ** , но при этом показывается та же ошибка. Не могли бы вы проверить это? – Anis

+0

Создание какого вида представления, определение вашего представления неверно. –

+0

черт! нужно сначала очистить основы, прежде чем играть :(спасибо, хотя :) – Anis

2

Ваша ошибка связана с именем файла. Все выглядит хорошо, кроме имени файла, которое вы дали. Вы должны указать имя файла __init__.py вместо __init.py

После этого, если проблема осталась прежней, проверьте свой унаследованный модуль. Возможно, возникнет проблема с наследованием.

Помимо этого, ваш файл .xml выглядит хорошо. В этом нет необходимости.

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