xml.dom.minidom Document () в Python / django, выводящий место в памяти - PullRequest
0 голосов
/ 16 июня 2009

Я учу Python и Django одновременно. Я пытаюсь создать XML-документ, чтобы вернуть XML из представления. В настоящее время я использую сервер разработки django, и я продолжаю выводить эту информацию из моих представлений вместо документа, который пытался создать.

Вот мой код

    from django.http import HttpResponse
    from mypoject.myapp.models import Username
    from django.core import serializers
    from xml.dom.minidom import Document
    import datetime


    def authenticate(request, username):
        if request.method == "GET":

            #Try to get the username
            try:
                checkUser = Username.objects.get(username__exact = username)
                user = userCheck.get(username__exact = username)
                userXML = serializers.serialize("xml", checkUser)

            except Username.DoesNotExist:
                #return XML with status "Failed"
                return HttpResponse(xml, mimetype="text/xml")       
            except:
                #return XML with status "Failed"

                xmlFailed = Document()

                meta = xmlFailed.createElement("meta")
                xmlFailed.appendChild(meta)

                status = xmlFailed.createElement("status")
                meta.appendChild(status)
                statusText = xmlFailed.createTextNode("Failed")
                status.appendChild(statusText)

                message = xmlFailed.createElement("message")
                meta.appendChild(message)

                totalRecords = xmlFailed.createElement("totalRecords")
                meta.appendChild(totalRecords)

                executionTime = xmlFailed.createElement("executionTime")
                meta.appendChild(executionTime)

                return HttpResponse(xmlFailed, mimetype="text/xml")
            else:
                #return happy XML code with status "Success"

А вот что происходит на экране, когда я просматриваю его в своем браузере ...

<xml.dom.minidom.Document instance at 0x993192c>

Если я закомментирую создание Document (), которое исчезнет. Так что я думаю, что мне просто нужно, чтобы не выплевывать информацию. Я искал повсюду и не могу найти прямой ответ, который заставляет меня поверить, что я упускаю что-то явно очевидное.

Спасибо за любую помощь!

1 Ответ

1 голос
/ 16 июня 2009

Вам нужно будет позвонить xmlFailed.toxml() или тому подобное, чтобы получить XML из вашего объекта - похоже, это не то, что вы делаете (в коде, который вы нам не показывали).

...