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.modeldef _xml_download(self): rootroot = 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_exceptiondef 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