Odoo 11 重写复制功能以添加额外字段
Odoo 11 rewrite copy function to add extra fields
我制作了自定义模块,将字段添加到 product.template 表单视图(库存、销售、仓库中的产品),当我尝试时,这些字段没有与产品重复。
因此,我正在尝试继承并重写该模块的函数副本。
我的代码:
class PurchaseOrder(models.Model):
_inherit= 'product.template'
@api.onchange('attribute_set_id')
def _onchange_attributes(self):
# SOME CODE HERE
@api.one
def copy(self, default=None):
default = dict(default or {})
default.update({
'weight': float(43),
})
return super(ProductTemplate, self).copy(default)
这些给我错误:
...
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
我还尝试了不同的名称和类型,例如 product.template、product_template、'product.template'、[product.template].
我尝试将 class 的名称更改为 ProductTemplate,但出现错误:
...
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'
我不确定该错误是来自复制功能还是其他原因。无论哪种方式,我都需要一些帮助来弄清楚我做错了什么。这是 Odoo 11 企业版。谢谢。
将您的 class 名称更改为 ProductTemplate 并使用 @api.multi
而不是 @api.one
class ProductTemplate(models.Model):
_inherit= 'product.template'
@api.onchange('attribute_set_id')
def _onchange_attributes(self):
# SOME CODE HERE
@api.multi
def copy(self, default=None):
default = dict(default or {})
default.update({'weight': float(43)})
return super(ProductTemplate, self).copy(default)
我制作了自定义模块,将字段添加到 product.template 表单视图(库存、销售、仓库中的产品),当我尝试时,这些字段没有与产品重复。 因此,我正在尝试继承并重写该模块的函数副本。
我的代码:
class PurchaseOrder(models.Model):
_inherit= 'product.template'
@api.onchange('attribute_set_id')
def _onchange_attributes(self):
# SOME CODE HERE
@api.one
def copy(self, default=None):
default = dict(default or {})
default.update({
'weight': float(43),
})
return super(ProductTemplate, self).copy(default)
这些给我错误:
...
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
我还尝试了不同的名称和类型,例如 product.template、product_template、'product.template'、[product.template].
我尝试将 class 的名称更改为 ProductTemplate,但出现错误:
...
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'
我不确定该错误是来自复制功能还是其他原因。无论哪种方式,我都需要一些帮助来弄清楚我做错了什么。这是 Odoo 11 企业版。谢谢。
将您的 class 名称更改为 ProductTemplate 并使用 @api.multi
而不是 @api.one
class ProductTemplate(models.Model):
_inherit= 'product.template'
@api.onchange('attribute_set_id')
def _onchange_attributes(self):
# SOME CODE HERE
@api.multi
def copy(self, default=None):
default = dict(default or {})
default.update({'weight': float(43)})
return super(ProductTemplate, self).copy(default)