Python 如何解决此错误:';产品模板';没有属性';生成ean13';?
我使用的是Odoo9,我创建了一个自定义模块,用于生成产品条形码。我已经在产品模板表单中创建了一个自定义按钮,该按钮生成条形码并将其插入到字段Python 如何解决此错误:';产品模板';没有属性';生成ean13';?,python,xml,python-2.7,odoo,odoo-9,Python,Xml,Python 2.7,Odoo,Odoo 9,我使用的是Odoo9,我创建了一个自定义模块,用于生成产品条形码。我已经在产品模板表单中创建了一个自定义按钮,该按钮生成条形码并将其插入到字段条形码中。但每次我按下“生成ean13”按钮时,就会出现这个错误,我不知道该怎么办。这是我的代码: product_view.xml 我的回溯 Traceback (most recent call last): File "D:\Projet_Odoo\Odoo 9.0-20180426\server\.\openerp\http.py", line 6
条形码中。但每次我按下“生成ean13”按钮时,就会出现这个错误,我不知道该怎么办。这是我的代码:
product_view.xml
我的回溯
Traceback (most recent call last):
File "D:\Projet_Odoo\Odoo 9.0-20180426\server\.\openerp\http.py", line 650,
in _handle_exception
File "D:\Projet_Odoo\Odoo 9.0-20180426\server\.\openerp\http.py", line 687,
in dispatch
File "D:\Projet_Odoo\Odoo 9.0-20180426\server\.\openerp\http.py", line 323,
in _call_function
File "D:\Projet_Odoo\Odoo 9.0-20180426\server\.\openerp\service\model.py",
line 118, in wrapper
File "D:\Projet_Odoo\Odoo 9.0-20180426\server\.\openerp\http.py", line 316,
in checked_call
File "D:\Projet_Odoo\Odoo 9.0-20180426\server\.\openerp\http.py", line 966,
in __call__
File "D:\Projet_Odoo\Odoo 9.0-20180426\server\.\openerp\http.py", line 516,
in response_wrap
File "D:\Projet_Odoo\Odoo 9.0-
20180426\server\openerp\addons\web\controllers\main.py", line 900, in
call_button
File "D:\Projet_Odoo\Odoo 9.0-
20180426\server\openerp\addons\web\controllers\main.py", line 888, in
_call_kw
AttributeError: 'product.template' object has no attribute 'generate_ean13'
我看到了几个错误
首先,不要使用\u列
字典,这是在旧api中使用的。因此,像这样声明字段ean\u sequence\u id
:
ean_sequence_id = fields.Many2one(
string='Ean sequence',
comodel_name='ir.sequence',
)
按钮调用的方法应具有@api.multi
装饰器:
@api.multi
def generate_ean13(self):
for record in self:
if not record.barcode:
barcode = record._generate_ean13_value(record)
if barcode:
record.write({'barcode': barcode})
谢谢,但即使进行了修改,它也显示了相同的错误。你能在问题中显示整个错误堆栈跟踪吗?奇怪的问题:但是你导入了模板扩展吗?(\uuuu init\uuuuu.py
)
ean_sequence_id = fields.Many2one(
string='Ean sequence',
comodel_name='ir.sequence',
)
@api.multi
def generate_ean13(self):
for record in self:
if not record.barcode:
barcode = record._generate_ean13_value(record)
if barcode:
record.write({'barcode': barcode})