Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Django rest框架和XML。更改项目标记名称、根标记名称和其他_Django_Django Rest Framework - Fatal编程技术网

Django rest框架和XML。更改项目标记名称、根标记名称和其他

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

我在我的项目中根据快速启动设置了一个rest框架 一切都是可行的,但正如通常发生的那样,并非没有问题

  • Myserializer.py

    类kvSerializer(serializers.HyperlinkedModelSerializer):

  • 我的视图.py

    类kvViewSet(viewsets.ModelViewSet):

  • 我的XML

    对象标题 100 对象地址

  • 问题:

  • 如何更改标签

    应称为

    应称为

  • 在标记
    之前,需要插入标记
  • 我的最终XML应该如下所示:

    <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]