TypeError:b2a_base64()参数1必须是字符串或缓冲区,而不是列表Odoo

时间:2018-04-23 18:34:14

标签: python odoo-10

我是

的XML输出
root = etree.tostring(xml)

这个文件生成一个xml但是在列表中,所以当我需要把它作为附件放在Odoo中时

self.env['ir.attachment'].create({
                'name': 'NFe_Autorizada.xml',
                'type': 'binary',
                'datas': base64.encodestring(root),
                'datas_fname': 'NFe_Autorizada.xml',
                'res_model': 'invoice.eletronic',
                'res_id': self.id,
                'mimetype': 'application/xml'})

我收到了错误:b2a_base64() argument 1 must be string or buffer, not list

当我尝试调用buy str(root)时,它可以工作但是然后XML文件转换为带有转义字符的字符串

如何将列表XML转换为文件XML?

1 个答案:

答案 0 :(得分:0)

我用以下方法解决了这个问题:

result = str(root)
result = result.replace("['","")
result = result.replace("']","")

但我不喜欢这个解决方案...