Bỏ qua để đến Nội dung
Menu
Câu hỏi này đã bị gắn cờ
1 Trả lời
6512 Lượt xem

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
Ảnh đại diện
Huỷ bỏ
Câu trả lời hay nhất

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)

Ảnh đại diện
Huỷ bỏ
Bài viết liên quan Trả lời Lượt xem Hoạt động
3
thg 3 19
3339
1
thg 1 19
5961
3
thg 12 18
8826
0
thg 11 18
5454
0
thg 5 22
3206