Passa al contenuto
Menu
È necessario essere registrati per interagire con la community.
La domanda è stata contrassegnata
2 Risposte
14588 Visualizzazioni

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? 



Avatar
Abbandona
Autore Risposta migliore

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'))
Avatar
Abbandona
Risposta migliore

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)
Avatar
Abbandona
Post correlati Risposte Visualizzazioni Attività
2
lug 25
4491
2
dic 24
7668
2
nov 24
28431
2
mag 24
7404
3
mar 24
6815