Мне нужно записать данные модели (только CharField
s) в файл XML, чтобы содержать данные для файла flash. Я новичок в этом, и мне немного непонятен процесс выполнения этого в 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 для файла flash. Я бы предпочел определять имена полей xml вручную, как в модуле csv. Поскольку я новичок в django и python, мне интересно, есть ли более простой и простой способ сделать это?
Примечание: В сериализаторе я использую фильтр для объектов модели, потому что использование get
для экземпляра модели возвращает ошибку не повторяемый объект
. На самом деле я дважды фильтрую его, чтобы получить единственный экземпляр, похоже, должен быть лучший способ.