2016-07-04 89 views
1

我在我的odoo中定製了一個名爲「x_vehicles」的模塊我可以從odoo中的自定義模塊繼承嗎?

可能從這個模塊繼承來覆蓋create方法?

我有這個代碼

class extend_vehicle(models.Model): 
    _inherit = 'x_vehicle' 

    @api.model 
    def create(self, vals): 

     # Do something... 

     return super(extend_vehicle, self).write(vals) 

但我得到這個錯誤

2016-07-04 15:05:20,488 9217 ERROR pro werkzeug: Error on request: 
Traceback (most recent call last): 
    File "/Users/jose/Work/odoo/env/lib/python2.7/site-packages/werkzeug/serving.py", line 177, in run_wsgi 
    execute(self.server.app) 
    File "/Users/jose/Work/odoo/env/lib/python2.7/site-packages/werkzeug/serving.py", line 165, in execute 
    application_iter = app(environ, start_response) 
    File "/Users/jose/Work/odoo/openerp/service/server.py", line 246, in app 
    return self.app(e, s) 
    File "/Users/jose/Work/odoo/openerp/service/wsgi_server.py", line 184, in application 
    return application_unproxied(environ, start_response) 
    File "/Users/jose/Work/odoo/openerp/service/wsgi_server.py", line 170, in application_unproxied 
    result = handler(environ, start_response) 
    File "/Users/jose/Work/odoo/openerp/http.py", line 1493, in __call__ 
    return self.dispatch(environ, start_response) 
    File "/Users/jose/Work/odoo/openerp/http.py", line 1467, in __call__ 
    return self.app(environ, start_wrapped) 
    File "/Users/jose/Work/odoo/env/lib/python2.7/site-packages/werkzeug/wsgi.py", line 588, in __call__ 
    return self.app(environ, start_response) 
    File "/Users/jose/Work/odoo/openerp/http.py", line 1642, in dispatch 
    ir_http = request.registry['ir.http'] 
    File "/Users/jose/Work/odoo/openerp/http.py", line 363, in registry 
    return openerp.modules.registry.RegistryManager.get(self.db) if self.db else None 
    File "/Users/jose/Work/odoo/openerp/modules/registry.py", line 355, in get 
    update_module) 
    File "/Users/jose/Work/odoo/openerp/modules/registry.py", line 386, in new 
    openerp.modules.load_modules(registry._db, force_demo, status, update_module) 
    File "/Users/jose/Work/odoo/openerp/modules/loading.py", line 334, in load_modules 
    force, status, report, loaded_modules, update_module) 
    File "/Users/jose/Work/odoo/openerp/modules/loading.py", line 237, in load_marked_modules 
    loaded, processed = load_module_graph(cr, graph, progressdict, report=report, skip_modules=loaded_modules, perform_checks=perform_checks) 
    File "/Users/jose/Work/odoo/openerp/modules/loading.py", line 132, in load_module_graph 
    models = registry.load(cr, package) 
    File "/Users/jose/Work/odoo/openerp/modules/registry.py", line 169, in load 
    model = cls._build_model(self, cr) 
    File "/Users/jose/Work/odoo/openerp/models.py", line 591, in _build_model 
    original_module = pool[name]._original_module if name in parents else cls._module 
    File "/Users/jose/Work/odoo/openerp/modules/registry.py", line 84, in __getitem__ 
    return self.models[model_name] 
KeyError: 'x_vehicle' 

我不知道如果我需要從其他模式擴展或做一些特別的...

請,誰能幫助我?

編輯:也許與名稱「自定義模塊」我犯了一個錯誤... 這是一個模塊內置的odoo,而不是一個外部模塊。我沒有模塊的代碼。它是由odoo提供的工具構建的。

enter image description here

我不能提取結構,因爲它是一個有點複雜,提取所有的功能,所以,我需要嘗試從模塊繼承

我希望,這可能是更具體的

編輯2:我認爲這是問題... 如果我嘗試安裝模塊,繼承功能,在選項卡「技術數據」,我可以看到該模型是未知...但我不知道爲什麼...

enter image description here

此外,這是我的實際OpenERP的 .py文件

{ 
    ... 
    'category': 'Automation', 
    'version': '1', 
    # any module necessary for this one to work correctly 
    'depends': ['base','x_vehicle'], 
    # always loaded 
    'data': [ 

    ] 
} 

回答

1

是的,它是可能的。

打開__openerp__.py文件,並更新以下關鍵

"depends" : [ 
    'base', 'list_of_core_module', 'your_custom_module_name' 
], 

list_of_core_module像銷售,購買,賬戶等等,

your_custom_module_name,你已經宣佈x_vehicles class

重新啓動服務器並升級當前模塊。

+0

是的,這是其中一個問題......非常感謝。 我已經添加在__openerp__.py文件x_vehicle,但現在我得到這個其他錯誤 ERROR親openerp.modules.graph:模塊extended_vehicle:滿足的依賴關係:x_vehicle –

+0

另外,我得到這個消息太「您嘗試安裝依賴於模塊'x_vehicle'的模塊'車輛'。 但是後一個模塊在您的系統中不可用。「 –

+0

檢查你的插件路徑。它將在那裏。否則,您的自定義模塊不會安裝。可能有人更改該模塊名稱。 –

相關問題