错误:save()获得了意外的关键字参数“格式”

时间:2018-06-26 14:37:33

标签: python-2.7 odoo-9

我正在使用odoo 9,并且试图安装名为odoo_qr_code的自定义模块,该模块允许以产品形式添加二维码并为产品和产品变体创建二维图像。但是当我在产品表格中添加我的二维码后按保存时,会显示错误。有什么帮助吗?

File "D:\Projet_Odoo\odoo-9.0rc20180515\openerp\addons\odoo_qr_code\models\models.py", line 23, in _generate_qr_code
img.save(buffer, format="PNG")
TypeError: save() got an unexpected keyword argument 'format'

models.py

import base64
import cStringIO

import qrcode
from openerp import models, fields, api


class ProductTemplateQRCode(models.Model):
_inherit = 'product.template'

@api.multi
@api.depends('product_qr_code')
def _generate_qr_code(self):
    qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=20, border=4)
    if self.product_qr_code:
        name = self.product_qr_code + '_product.png'
        qr.add_data(self.product_qr_code)
        qr.make(fit=True)
        img = qr.make_image()
        buffer = cStringIO.StringIO()
        img.save(buffer, format="PNG")
        qrcode_img = base64.b64encode(buffer.getvalue())
        self.update({'qr_code': qrcode_img, 'qr_code_name': name})

product_qr_code = fields.Char('QR Code')
qr_code = fields.Binary('QR Code', compute="_generate_qr_code")
qr_code_name = fields.Char(default="qr_code.png")


class ProductProductQRCode(models.Model):
_inherit = 'product.product'

@api.multi
@api.depends('product_qr_code')
def _generate_qr_code(self):
    qr = qrcode.QRCode(version=1, error_correction=qrcode.constants.ERROR_CORRECT_L, box_size=20, border=4)
    if self.product_qr_code:
        name = self.product_qr_code + '_product.png'
        qr.add_data(self.product_qr_code)
        qr.make(fit=True)
        img = qr.make_image()
        buffer = cStringIO.StringIO()
        img.save(buffer, format="PNG")
        qrcode_img = base64.b64encode(buffer.getvalue())
        self.update({'qr_code': qrcode_img, 'qr_code_name': name})

1 个答案:

答案 0 :(得分:0)

该错误表明函数save不接受参数format。因此,您需要将其删除(从两个功能中删除)。

您可以为how to create QR code in python引用此this链接。

希望它会对您有所帮助。