xml.dom.minidom在Python / django中输出内存位置的Document()

时间:2009-06-16 03:35:53

标签: python xml django minidom

我正在学习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 个答案:

答案 0 :(得分:1)

您需要调用xmlFailed.toxml()之类的内容才能从您的对象中获取XML - 看起来这不是您正在做的事情(在您未向我们展示的代码中)。< / p>