【问题标题】:Odoo 8.0 product_product inherit extend classOdoo 8.0 product_product 继承扩展类
【发布时间】:2015-08-17 03:09:23
【问题描述】:

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

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文档,官方很差

【问题讨论】:

  • 如果您继承 product.product 类,您正在修改产品变体。也许你想要的是修改product.template 类,不是吗?

标签: python openerp odoo odoo-8


【解决方案1】:

你得到'Keyerror'

所以请检查你是否在 openerp.py 中给出了正确的依赖 即,您必须在依赖中提供“产品”

像这样给:- '取决于':['基础','产品'],

希望这会有所帮助...

【讨论】:

  • 是的,它有帮助!解决了在 openerp.py 中将“产品”添加到依赖项的问题
【解决方案2】:

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

【讨论】:

  • 已经尝试过了,在链接中说使用 _name = _inheret。解决了在 openerp.py 中将“产品”添加到依赖项的问题
【解决方案3】:

试试这个:

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")
    }

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

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

【讨论】:

  • 解决了在 openerp.py 中将“产品”添加到依赖项的问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-26
  • 2017-05-18
相关资源
最近更新 更多