#python #django
#python #django
Вопрос:
Как я могу создать XML-файл в django, где файл должен содержать объекты из набора запросов?
def my_serialize(request):
from django.core import serializers
data = serializers.serialize('xml', Student.objects.filter(Q(name__startswith='A')),
fields=('name','dob'))
from django.core.files import File
f = open('content.xml', 'w')
myfile = File(f)
myfile.write(data)
myfile.close()
После того, как я вызываю вышеупомянутую функцию, мой файл содержимого остается пустым, в нем нет данных, которые записываются.
Комментарии:
1. Вы не создаете XML-файлы в Django. Вы создаете XML-файлы в Python.
2. Ваш файл пуст, потому что ‘data’ пуст? Или потому, что запись файла не выполняется? Запустите это из командной строки django и проверьте, возвращает ли вызов сериализатора XML. И если запрос возвращает какие-либо объекты…
Ответ №1:
from django.core import serializers
data = serializers.serialize("xml", SomeModel.objects.all())
Взгляните на документацию по сериализации.
Комментарии:
1. Предполагая, что OP хочет выгрузить объекты для последующего извлечения. Это непонятно.
Ответ №2:
Я не использую версию 1.3, поэтому я не уверен, как это работает, но может быть, файл на самом деле не открывается? Может ли добавление myfile.open('w')
сработать? Конечно, это может быть обработано в функции init класса File. В любом случае, попробуйте попробовать и прокомментируйте свои результаты.
Обновление: Кстати, мне пришла в голову идея, просмотрев документы. Возможно, они тоже смогут помочь. http://docs.djangoproject.com/en/1.3/ref/files/file /