Django DetailView/ListView 强制 XML 渲染
Posted
技术标签:
【中文标题】Django DetailView/ListView 强制 XML 渲染【英文标题】:Django DetailView/ListView force XML rendering 【发布时间】:2012-05-14 15:08:43 【问题描述】:有没有办法强制 DetailView/ListView 生成 XML 文件而不是 html?
我已经创建了一个 XML 模板并且它可以正确呈现,但是 DetaiView 不允许设置 mimetype。
有什么想法吗?
谢谢!
【问题讨论】:
【参考方案1】: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)
应该工作
【讨论】:
您的代码很完美,但会引发 InvalidSyntax 异常,mimetype 应放在 **response_kwargs 之前才能正常工作。谢谢!【参考方案2】:你可以简单地使用你视图的content_type
属性
class MyView(DetailView):
content_type = 'application/xml'
自 Django 1.5 起由TemplateResponseMixin 提供
【讨论】:
以上是关于Django DetailView/ListView 强制 XML 渲染的主要内容,如果未能解决你的问题,请参考以下文章