你如何让djangorestframework使用格式后缀返回xml?

时间:2013-12-05 06:49:23

标签: python xml django django-rest-framework

我可以让djangorestframework通过格式后缀.json返回json,但不能通过.xml后缀返回xml

http://127.0.0.1:8000/chat/rooms/.json

[
{
id: 1,
timestamp: "2013-12-05T04:27:42Z",
topic: "important one"
},
{
id: 2,
timestamp: "2013-12-05T04:27:49Z",
topic: "important two"
},
{
id: 3,
timestamp: "2013-12-05T04:27:55Z",
topic: "important three"
},
{
id: 4,
timestamp: "2013-12-05T04:28:01Z",
topic: "important four"
},
{
id: 5,
timestamp: "2013-12-05T06:43:38Z",
topic: "another great stimulating topic"
}
]


http://127.0.0.1:8000/chat/rooms/.xml

{
detail: "Not found"
}

有谁能告诉我我做错了什么,b / c REST api显然正在工作......谢谢!

2 个答案:

答案 0 :(得分:9)

您需要添加默认情况下未启用的XMLRenderer

要在设置中执行此操作,请执行以下操作:

REST_FRAMEWORK = {
  'DEFAULT_RENDERER_CLASSES': (
    'rest_framework.renderers.XMLRenderer',
    'rest_framework.renderers.JSONRenderer',
    'rest_framework.renderers.BrowsableAPIRenderer',
  )
}

要在视图级别设置渲染器,请使用render_classes属性。

看看the Renderers documentation

更新:我发现以上只是答案的一半。您还需要添加xml format suffix, as documented here

我希望有所帮助。

答案 1 :(得分:3)

现在$ pip install djangorestframework-xml 可用作第三方软件包。

REST_FRAMEWORK = {
    'DEFAULT_RENDERER_CLASSES': (
        'rest_framework_xml.renderers.XMLRenderer',
        'rest_framework.renderers.JSONRenderer',
        'rest_framework.renderers.BrowsableAPIRenderer',
    ),
}

settings.py

sizeof

完整django-rest-framework-xml Docs