Наследование sale.order в Odoo 8

Имеется Odoo (OpenERP) 8.
Нужно добавить поле в sale.order

Вот так:
from openerp import models, fields

class SomeClass(models.Model):
    _inherit = 'sale.order'

    description = fields.Char(default="Some text")


На что odoo ругается следующим образом:


Traceback (most recent call last):
File "/usr/share/pyshared/werkzeug/serving.py", line 159, in run_wsgi
execute(app)
File "/usr/share/pyshared/werkzeug/serving.py", line 146, in execute
application_iter = app(environ, start_response)
File "/usr/lib/python2.7/dist-packages/openerp/service/server.py", line 280, in app
return self.app(e, s)
File "/usr/lib/python2.7/dist-packages/openerp/service/wsgi_server.py", line 216, in application
return application_unproxied(environ, start_response)
File "/usr/lib/python2.7/dist-packages/openerp/service/wsgi_server.py", line 202, in application_unproxied
result = handler(environ, start_response)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 1215, in __call__
return self.dispatch(environ, start_response)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 1189, in __call__
return self.app(environ, start_wrapped)
File "/usr/share/pyshared/werkzeug/wsgi.py", line 411, in __call__
return self.app(environ, start_response)
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 1347, in dispatch
ir_http = request.registry['ir.http']
File "/usr/lib/python2.7/dist-packages/openerp/http.py", line 319, in registry
return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None
File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 293, in get
update_module)
File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 324, in new
openerp.modules.load_modules(registry._db, force_demo, status, update_module)
File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 354, in load_modules
force, status, report, loaded_modules, update_module)
File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 263, in load_marked_modules
loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks)
File "/usr/lib/python2.7/dist-packages/openerp/modules/loading.py", line 158, in load_module_graph
models = registry.load(cr, package)
File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 147, in load
model = cls._build_model(self, cr)
File "/usr/lib/python2.7/dist-packages/openerp/models.py", line 585, in _build_model
original_module = pool[name]._original_module if name in parents else cls._module
File "/usr/lib/python2.7/dist-packages/openerp/modules/registry.py", line 100, in __getitem__
return self.models[model_name]
KeyError: 'sale.order'


Меняем код, подтставляя другой модуль:

from openerp import models, fields

class SomeClass(models.Model):
    <strong>_inherit = 'res.partner'</strong>

    description = fields.Char(default="Some text")


И ошибки как не бывало.
Вопрос: это особенности 8й версии, или кривого кода, или и то и другое в совокупности?

Решение проблемы оказалось довольно простым: не забываем добавлять список зависимостей в __openerp__.py
В данном случае нужно было добавить зависимость от модуля «sale».

3 комментария

avatar
советую переместить вопрос в раздел форума для разработчиков: odoo-russia.ru/forum/openerp-develop-newbies/

после запуска форума блоги используются только для того чтобы поделиться знаниями по уже решенным вопросам, т.е. это должна быть полноценная статья, описывающая проблему и ее решение. Если это просто вопрос — добро пожаловать на форум, вам там тоже рады.
avatar
Принято! Проблема уже решена, напишу решение ниже.
avatar
Решение проблемы оказалось довольно простым: не забываем добавлять список зависимостей в __openerp__.py
В данном случае нужно было добавить зависимость от модуля «sale».

Оставить комментарий