【发布时间】:2012-05-14 15:08:43
【问题描述】:
有没有办法强制 DetailView/ListView 生成 XML 文件而不是 HTML?
我已经创建了一个 XML 模板并且它可以正确呈现,但是 DetaiView 不允许设置 mimetype。
有什么想法吗?
谢谢!
【问题讨论】:
标签: xml django templates django-templates detailview
有没有办法强制 DetailView/ListView 生成 XML 文件而不是 HTML?
我已经创建了一个 XML 模板并且它可以正确呈现,但是 DetaiView 不允许设置 mimetype。
有什么想法吗?
谢谢!
【问题讨论】:
标签: xml django templates django-templates detailview
DetailView 继承自 SingleObjectTemplateResponseMixin,后者继承自 TemplateResponseMixin,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'
自 Django 1.5 起由TemplateResponseMixin 提供
【讨论】: