Отрисовать XML в представление - PullRequest
8 голосов
/ 18 мая 2011

Сценарий выглядит следующим образом.

Я получаю атомный файл с сайта (скажем, A). Третья сторона будет запрашивать этот атомный файл через мой веб-сайт (скажем, B).

Я пишу приложение Django, которое будет часто опрашивать веб-сайт A и сохранять его в виде файла. Теперь, когда третья сторона запрашивает файл через веб-сайт B, мне нужно будет отобразить файл как XML в браузере.

Мой вопрос заключается в том, как сделать весь файл XML для представления в Django?

 render_to_response

ожидает шаблон. Я не могу использовать шаблон как таковой. Мне просто нужно отобразить файл в представлении. Как мне это сделать?

Ответы [ 3 ]

14 голосов
/ 18 мая 2011

Сделай что-нибудь подобное.

return render(request, 'myapp/index.html', {"foo": "bar"} content_type="application/xhtml+xml")
8 голосов
/ 06 марта 2015

Вам просто нужно определить тип MIME для 'text/xml', используя аргумент content_type:

return HttpResponse(open('myxmlfile.xml').read(), content_type='text/xml')
3 голосов
/ 18 мая 2011

Если вы не хотите отображать шаблон, не делайте этого. render - это просто ярлык для отображения шаблона. Если вы просто хотите отобразить текст, просто передайте его в HttpResponse.

Поскольку ваши данные находятся в файле, это будет работать:

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

хотя вам следует остерегаться проблем с параллелизмом, если к вашему сайту одновременно обращается более одного человека.

...