Мне нужно записать данные модели (только CharField
s) в файл XML, чтобы содержать данные для файла флэш-памяти.Я новичок в этом, и процесс немного неясен для меня, чтобы сделать это в Django.Я создаю файл XML, а затем записываю текстовые данные в файл (как это делается с модулем CSV, но в XML).Для чтения флеш-файла должен быть очень упрощенный XML-файл, а именно:
<?xml version="1.0" encoding="UTF-8"?>
<textFields>
<textField id="0" text="HELLO WORLD" />
<textField id="1" text="HELLO EARTH" />
...
</textFields>
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легко для флэш-файла.Я бы предпочел определять имена полей xml вручную, как в модуле csv.Поскольку я новичок в django и python, мне интересно, есть ли более простой и простой способ сделать это?
Примечание: В сериализаторе я использую фильтр для объектов модели, потому что использование get
для экземпляра модели возвращает ошибку object not iterable
.На самом деле я фильтрую его дважды, чтобы получить один экземпляр, кажется, что должен быть лучший способ.