Создание XML-файла в django

#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 /