Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
2 Відповіді
14550 Переглядів

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)
Аватар
Відмінити
Related Posts Відповіді Переглядів Дія
2
лип. 25
4429
2
груд. 24
7616
2
лист. 24
28384
2
трав. 24
7356
3
бер. 24
6784