Odoo 8.0 product_product继承扩展类

时间:2015-08-17 03:09:23

标签: python openerp odoo odoo-8

我迈出了第一步。 我正在尝试扩展这样的产品模型类。

from openerp.osv import osv,fields as fields

class product_product(osv.osv):
    _name = 'product.product'
    _inherit = 'product.product'
    _columns = {
        'products_ids':fields.one2many('product_application.version', 'version_id', string="Versions")
    }

并收到以下错误

  File "/home/nano/ARCHIVOS/PycharmProjects/odoo/odoo/openerp/models.py", line 596, in _build_model
    original_module = pool[name]._original_module if name in parents else cls._module
  File "/home/nano/ARCHIVOS/PycharmProjects/odoo/odoo/openerp/modules/registry.py", line 102, in __getitem__
    return self.models[model_name]
KeyError: 'product.product'

任何人都可以给我一个完整的odoo v8文档,官方很差

3 个答案:

答案 0 :(得分:9)

你正在接受Keyerror'

所以请检查你是否给出了正确的取决于 openerp .py 即,你必须提供产品'取决于

这样给: - '依赖':[' base',' product'],

希望这会有所帮助......

答案 1 :(得分:2)

在odoo中,_name在后端数据库中创建一个新表。
所以,这里的问题是你在继承_name ='product.product'时正在使用它已经存在于DB(基类产品)中。
如果你想要正常继承而不需要_name属性,你只需要通过_inherit进行扩展。
你正在使用的继承类型,因为_name不应该等于_inherit(_name!= _inherit)。因此,要么为_name ='new.name'添加新名称 有关更多说明,请查看此链接
https://www.odoo.com/documentation/8.0/howtos/backend.html

答案 2 :(得分:1)

试试这个:

from openerp.osv import fields,osv
class product_product(osv.osv):
    _name = 'product.product'
    _inherit = 'product.product'
    _columns = {
         'products_ids':fields.one2many('product_application.version', 'version_id', string="Versions")
    }

我不知道您为什么使用“字段作为字段”?

或者检查您是否安装了“产品”模块?