Skip to Content
Meniu
Trebuie să fiți înregistrat pentru a interacționa cu comunitatea.
Această întrebare a fost marcată
1 Răspunde
6628 Vizualizări

I am trying to return the entire XML chunk to the controller in order to make them downloaded as an XML file.

  from xml.etree import ElementTree as ET  
    @api.model
    
def _xml_download(self): root
root = ET.Element("Test A")
doc = ET.Element("Test B")
root.append(doc)
return ET.ElementTree(root)

And here is my controller:

class TestXMl(http.Controller):
    @http.route('/xml/download/report', type='http', auth="user")
@serialize_exception
def sale_xml_download(self, model, id, filename=None, **kw):
filename = 'Test%s.xml'%('Test')
records= http.request.env['sale.order'].search([('some_attribute', '=', True)])
if records:
xml_record = http.request.env['sale.order']._xml_download()
else:
xml_record = 'Test'
filename = 'Test%s.xml'%('Test') headers = [
('Content-Type', 'application/xml'),
('Content-Disposition', content_disposition(filename)),
('charset', 'utf-8'),
]
return request.make_response(
xml_record, headers=headers, cookies=None)
But I xml_record is not getting the element tree. It is saying TypeError: 'ElementTree' object is not iterable - - - In this case how we suppose to pass the elementTree. Looking for useful response, thank you in advance
Imagine profil
Abandonează
Cel mai bun răspuns

you directly pass etree object as response data (xml_record). you have to convert it to string before you pass as response data.  ref. etree.tosting(xml_record)

Imagine profil
Abandonează
Related Posts Răspunsuri Vizualizări Activitate
3
mar. 19
3468
1
ian. 19
6064
3
dec. 18
8954
0
nov. 18
5550
0
mai 22
3313