Django DetailView/ListView принудительно отображают XML

Есть ли способ заставить DetailView/ListView генерировать файл XML вместо HTML?

Я уже создал шаблон XML, и он правильно отображает, но DetaiView не позволяет установить MIME-тип.

Есть идеи?

Спасибо!

2 ответа

Решение

DetailView наследуется от SingleObjectTemplateResponseMixin который наследует от TemplateResponseMixin у которого есть метод render_to_response в котором mimemtype можно установить. Итак, что-то вроде

class MyView(DetailView):
    def render_to_response(self, context, **response_kwargs):
        return super(MyView, self).render_to_response(
            context,
            mimetype='application/xml',
            **response_kwargs)

должно сработать

Вы можете просто использовать content_type атрибут вашего взгляда

class MyView(DetailView):
    content_type = 'application/xml'

Предоставляется TemplateResponseMixin начиная с Django 1.5

Другие вопросы по тегам