Python 3.x Odoo 11重写复制函数以添加额外字段

Python 3.x Odoo 11重写复制函数以添加额外字段,python-3.x,openerp,odoo-10,odoo-11,Python 3.x,Openerp,Odoo 10,Odoo 11,我制作了自定义模块,将字段添加到product.template表单视图(库存、销售、仓库中的产品)中,这些字段在我尝试复制时不会与产品重复。 因此,我试图继承并重写该模块的函数副本 我的代码: 类采购订单(models.Model): _inherit='product.template' @api.onchange('attribute\u set\u id') 定义更改属性(自身): #这里有一些代码 @api.1 def副本(自身,默认值=无): default=dict(默认值或{})

我制作了自定义模块,将字段添加到product.template表单视图(库存、销售、仓库中的产品)中,这些字段在我尝试复制时不会与产品重复。 因此,我试图继承并重写该模块的函数副本

我的代码:

类采购订单(models.Model):
_inherit='product.template'
@api.onchange('attribute\u set\u id')
定义更改属性(自身):
#这里有一些代码
@api.1
def副本(自身,默认值=无):
default=dict(默认值或{})
default.update({
“重量”:浮子(43),
})
返回超级(ProductTemplate,self).copy(默认)
这给了我一个错误:

  ...
  File "/var/www/.local/share/Odoo/addons/11.0/sync2ba2/models/sync2ba_mob.py", line 89, in copy
    return super(ProductTemplate, self).copy(default)
NameError: name 'ProductTemplate' is not defined
  ...
  File "/usr/local/lib/python3.5/dist-packages/odoo-11.0+e.20171006-py3.5.egg/odoo/models.py", line 3833, in <lambda>
    @api.returns('self', lambda value: value.id)
AttributeError: 'list' object has no attribute 'id'
我还尝试了不同的名称和类型,如product.template、product_template、“product.template”、“product.template”

我尝试将类的名称更改为ProductTemplate,但出现错误:

  ...
  File "/var/www/.local/share/Odoo/addons/11.0/sync2ba2/models/sync2ba_mob.py", line 89, in copy
    return super(ProductTemplate, self).copy(default)
NameError: name 'ProductTemplate' is not defined
  ...
  File "/usr/local/lib/python3.5/dist-packages/odoo-11.0+e.20171006-py3.5.egg/odoo/models.py", line 3833, in <lambda>
    @api.returns('self', lambda value: value.id)
AttributeError: 'list' object has no attribute 'id'
。。。
文件“/usr/local/lib/python3.5/dist-packages/odoo-11.0+e.20171006-py3.5.egg/odoo/models.py”,第3833行,in
@返回('self',lambda值:value.id)
AttributeError:“列表”对象没有属性“id”
我不确定该错误是来自复制函数还是其他原因。无论哪种方式,我都希望得到一些帮助,找出我做错了什么。这是奥多11企业号。谢谢。

将类名更改为ProductTemplate,并使用
@api.multi
而不是
@api.one

类产品模板(models.Model):
_inherit='product.template'
@api.onchange('attribute\u set\u id')
定义更改属性(自身):
#这里有一些代码
@api.multi
def副本(自身,默认值=无):
default=dict(默认值或{})
default.update({'weight':float(43)})
返回超级(ProductTemplate,self).copy(默认)

非常感谢@senthilnathang。就是这样:D