跳至内容
菜单
此问题已终结
2 回复
14546 查看

I'm trying to create a XML file and add it as a attachment to the record. It generates the xml as a string and saves it into 'ir.attachment' but I don't know how to add it to the models record so I could download it from the custom modules form view.

    @api.model

def attach_xml_file(self, docids):

import base64

xml_string = self.generate_xml()

file_name = 'myfile-1.xml'

attach_name = file_name

attach_id = self.env['ir.attachment'].create({'name': attach_name,

'datas': base64.encodestring(xml_string),

'datas_fname': file_name,

'res_model': 'this.model.name',

'res_id': docids[0]})

Do I have to inherit the ir.attchment in my custom model? How can I attach the file to the specific instance of the model? Is there a odoo base addon that does this and I could use it as example? 



形象
丢弃
编写者 最佳答案

OK did it. used etree from lxml to create the file and convert it to string with etree.tostring() and then encoded the string with base64 and passed it to a field.

self.xml_doc = base64.encodestring(etree.tostring(xml_root, pretty_print=False, encoding='utf8'))
形象
丢弃
最佳答案

Hello Samo Arko

You can Try This, 

attachment = {'name': 'Name of Attachmnet',    
              'datas': base64.encodestring('Data'),
             'datas_fname': 'File Name',
             'res_model': 'Model Name',
             'res_id': 'res_id'}

self.env['ir.attachment'].create(attachment)
形象
丢弃
相关帖文 回复 查看 活动
2
7月 25
4424
2
12月 24
7610
2
11月 24
28381
2
5月 24
7356
3
3月 24
6780