当前位置:  开发笔记 > 编程语言 > 正文

从模型数据生成XML文件

如何解决《从模型数据生成XML文件》经验,为你挑选了1个好方法。

我需要将模型数据(CharField仅限s)写入XML文件以包含flash文件的数据.我是新手,对于我在django这样做的过程有点不清楚.我正在创建一个xml文件,然后将文本数据写入文件(就像使用csv模块,但是使用xml).应该为Flash文件读取一个非常简化的xml文件,即:



     
     
     ...

1.我正在使用序列化程序从模型中编写xml数据:

from django.core import serializers
data = serializers.serialize('xml', myModel.objects.filter(instanceIwantTowrite), fields=('fieldName'))

2.然后我用core.files以下方法创建文件:

from django.core.files import File    
f = open('/path/to/new/dir/content.xml', 'w')
myfile = File(f)

3.写入文件数据并关闭:

myfile.write(data)

myfile.close()

这个工作到目前为止,虽然xml输出包含对象"django-objects"等的字段,我将不得不看看我是否可以在ActionScript中轻松地为flash文件解释这个.我更喜欢手动定义xml字段名称,就像在csv模块中一样.由于我是django和python的新手,我想知道是否有更简单,更简单的方法来做到这一点?

注意:在序列化程序中,我对模型对象使用过滤器,因为get用于模型实例会返回object not iterable错误.事实上,我过滤两次以获得单个实例,似乎必须有更好的方法.



1> Dominik Szop..:

您有两种可能的解决方案:

1.

您可以扩展基础django xml serializer(django.core.serializers.xml_serializer.Serializer)并对其进行修改,以便它返回结构中的数据.然后你可以运行ex.

YourSerializer('xml', myModel.objects.filter(instanceIwantTowrite), fields=('fieldName'))

它将在您的结构中输出数据.

2.

编写简单的函数,使用您的数据结构呈现模板并以您的格式返回xml数据:

Python代码

from django.template.loader import render_to_string

def my_serialize(query_set):
    xml = render_to_string('xml_template.xml', {'query_set': query_set})

    return xml

模板xml_template.xml



     {% for object in query_set %}
     
     {% endfor %}

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有