[Fixed]-Render an xml to a view

6πŸ‘

βœ…

If you don’t want to render a template, don’t do so. render is just a shortcut to render a template. If you just want to display text, just pass it into the HttpResponse.

Since your data is in a file, this will work:

return HttpResponse(open('myxmlfile.xml').read())

although you should beware of concurrency issues, if more than one person is accessing your site at a time.

21πŸ‘

You just need to define the MIME type to 'text/xml' using the content_type argument:

return HttpResponse(open('myxmlfile.xml').read(), content_type='text/xml')
πŸ‘€Jdelos

18πŸ‘

Do something like the below:

return render(request, 'myapp/index.html', {"foo": "bar"}, content_type="application/xhtml+xml")
πŸ‘€silent1mezzo

4πŸ‘

return render(request, 'products.xml', content_type='text/xml')

The render function can also work; you must add like jdelos’ answer, simply adding the content_type='text/xml'.

πŸ‘€NEFEGAGO

2πŸ‘

Just define the MIME type to β€˜text/xml’ using the content_type argument.

return render(request, 'xmltemplate.xml', {'foo':'bar'}, content_type='text/xml')

In the xmltemplate.xml render the variables if you want.

<?xml version="1.0" encoding="UTF-8"?>
<note>
    <foo>{{ foo }}</foo>
</note>
πŸ‘€tinyhare

Leave a comment