2009-06-16 5 views
0

Ich lerne Python und Django gleichzeitig. Ich versuche ein XML-Dokument zu erstellen, um XML aus einer Ansicht zurückzugeben. Ich benutze den django Entwicklungsserver im Moment und bekomme diese Informationen in meinen Ansichten anstatt in dem Dokument, das ich erstellen wollte.xml.dom.minidom Document() in Python/django Ausgabe des Speicherortes

Hier ist mein Code

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" 

Und hier ist, was auf dem Bildschirm passiert, wenn ich es in meinem Browser anzeigen ...

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

Wenn ich das Dokument() Schaffung Kommentar darauf hin, dass weggeht . Ich denke also, ich brauche es nur, um die Informationen nicht auszuspucken. Ich habe überall gesucht und ich kann keine direkte Antwort finden, die mich glauben lässt, dass ich etwas offensichtlich Offensichtliches vermisse.

Danke für jede Hilfe!

Antwort

1

Sie müssen xmlFailed.toxml() oder dergleichen aufrufen, um XML aus Ihrem Objekt zu entfernen - sieht so aus, als ob Sie das nicht tun (in dem Code, den Sie uns nicht gezeigt haben).

+0

Danke. Hier ist der Code, den ich \t benötigt \t \t XMLResponse = xmlFailed.toxml ("UTF-8") \t \t return Httpresponse (XMLResponse, MIME-Typ = "text/xml") –

+1

Auch für schönere Menschen lesbare XML formatiert, verwenden toprettyxml() anstelle von toxml(). –