[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.

๐Ÿ‘คDaniel Roseman

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