Django rest框架和XML。更改项目标记名称、根标记名称和其他
我在我的项目中根据快速启动设置了一个rest框架 一切都是可行的,但正如通常发生的那样,并非没有问题Django rest框架和XML。更改项目标记名称、根标记名称和其他,django,django-rest-framework,Django,Django Rest Framework,我在我的项目中根据快速启动设置了一个rest框架 一切都是可行的,但正如通常发生的那样,并非没有问题 Myserializer.py: 类kvSerializer(serializers.HyperlinkedModelSerializer): 我的视图.py: 类kvViewSet(viewsets.ModelViewSet): 我的XML: 对象标题 100 对象地址 问题: 如何更改标签和 应称为 应称为 在标记之前,需要插入标记 我的最终XML应该如下所示: <feed&g
和
应称为
应称为
之前,需要插入标记
<feed>
<creation-date>Date</creation-date>
<offer id=1>
<title>
Object title
</title>
<price>100</price>
<address>
object address
</address>
</offer>
<offer id=2>
<title>
Object title
</title>
<price>100</price>
<address>
object address
</address>
</offer>
</feed>
日期
对象标题
100
对象地址
对象标题
100
对象地址
这不是序列化程序的一部分,而是呈现程序的一部分。您可以在ModelViewSet
中更改渲染器。我们可以通过以下方式安装简单的渲染器:
pip install djangorestframework-xml
然后,我们可以在ModelViewSet
的renderer\u类中使用自定义渲染器:
class kvViewSet(viewsets.ModelViewSet):
queryset = listings.objects.all()
serializer_class = kvSerializer
renderer_classes = [KvXmlRenderer]
kvViewSet类(viewsets.ModelViewSet):
queryset=listings.objects.all()
serializer\u class=kvSerializer
renderer\u classes=[KvXmlRenderer]
这不是序列化程序的一部分,而是呈现程序的一部分。您可以在ModelViewSet
中更改渲染器。我们可以通过以下方式安装简单的渲染器:
pip install djangorestframework-xml
然后,我们可以在ModelViewSet
的renderer\u类中使用自定义渲染器:
class kvViewSet(viewsets.ModelViewSet):
queryset = listings.objects.all()
serializer_class = kvSerializer
renderer_classes = [KvXmlRenderer]
kvViewSet类(viewsets.ModelViewSet):
queryset=listings.objects.all()
serializer\u class=kvSerializer
renderer_classes=[KvXmlRenderer]
Willem Van Onsem,谢谢!它的工作,因为它应该!但不适用于标记创建日期
,如果我将_添加到_xml,我会得到一个错误:startElement()缺少1个必需的位置参数:“attrs”
@I.Z.:啊,是的,我忘了需要在此处添加一个空字典作为第二个参数。请参见编辑。当然,您需要将创建日期的字符串更改为要插入该标记中的内容。Willem Van Onsem,非常感谢!一切正常!威廉·范昂森,谢谢你!它的工作,因为它应该!但不适用于标记创建日期
,如果我将_添加到_xml,我会得到一个错误:startElement()缺少1个必需的位置参数:“attrs”
@I.Z.:啊,是的,我忘了需要在此处添加一个空字典作为第二个参数。请参见编辑。当然,您需要将创建日期的字符串更改为要插入该标记中的内容。Willem Van Onsem,非常感谢!一切正常!
class kvViewSet(viewsets.ModelViewSet):
queryset = listings.objects.all()
serializer_class = kvSerializer
renderer_classes = [KvXmlRenderer]