python django soaplib响应与类模型问题

python django soaplib响应与类模型问题,python,soap,xml-namespaces,tns,soaplib,Python,Soap,Xml Namespaces,Tns,Soaplib,我在django中运行soap服务器 是否可以创建一个soap方法来返回一个没有标记的soaplib类模型实例 例如,下面是我的soap服务器代码的一部分: # -*- coding: cp1254 -*- from soaplib.core.service import rpc, DefinitionBase, soap from soaplib.core.model.primitive import String, Integer, Boolean from soaplib.core.mod

我在django中运行soap服务器

是否可以创建一个soap方法来返回一个没有标记的soaplib类模型实例

例如,下面是我的soap服务器代码的一部分:

# -*- coding: cp1254 -*-
from soaplib.core.service import rpc, DefinitionBase, soap
from soaplib.core.model.primitive import String, Integer, Boolean
from soaplib.core.model.clazz import Array, ClassModel 
from soaplib.core import Application
from soaplib.core.server.wsgi import Application as WSGIApplication
from soaplib.core.model.binary import Attachment    


class documentResponse(ClassModel):
    __namespace__ = ""
    msg = String
    hash = String


class MyService(DefinitionBase):
    __service_interface__ = "MyService"


    __port_types__ = ["MyServicePortType"]




    @soap(String, Attachment, String ,_returns=documentResponse,_faults=(MyServiceFaultMessage,)  , _port_type="MyServicePortType"  )
    def sendDocument(self, fileName, binaryData, hash ):

        binaryData.file_name = fileName
        binaryData.save_to_file()


        resp = documentResponse()
        resp.msg = "Saved"
        resp.hash = hash
        return resp
它的反应是:

 <senv:Body>
   <tns:sendDocumentResponse>
     <tns:sendDocumentResult>
      <hash>14a95636ddcf022fa2593c69af1a02f6</hash>
      <msg>Saved</msg>
    </tns:sendDocumentResult>
  </tns:sendDocumentResponse>
</senv:Body>

14a95636ddcf022fa2593c69af1a02f6
保存的
但我需要这样的回应:

<senv:Body>
   <ns3:documentResponse>
     <hash>A694EFB083E81568A66B96FC90EEBACE</hash>
     <msg>Saved</msg>
  </ns3:documentResponse>
</senv:Body>

A694EFB083E81568A66B96FC90EEBACE
保存的
为了获得上面提到的第二个响应,我应该进行什么样的配置


提前感谢。

我还没有使用Python的SoapLib,但是在使用.NET SoapLib时遇到了同样的问题。仅供参考,在.NET中,这是使用以下装饰器完成的:

[SoapDocumentMethod(ParameterStyle=SoapParameterStyle.Bare)]
我查看了soaplib源代码,但它似乎没有类似的装饰程序。我找到的最接近的东西是
\u style
属性。从代码中可以看出-使用时

@soap(..., _style='document')
它没有附加
%sResult
标记,但我还没有对此进行测试。试一下,看看这是否符合你的要求

如果它不起作用,但您仍然希望得到这种响应,请查看Spyne:


它是soaplib(我想)的一个分支,具有
\u soap\u body\u style='bare'
装饰器,我相信这就是您想要的。

我还没有使用Python的soaplib,但是在使用.NET soap libs时遇到了同样的问题。仅供参考,在.NET中,这是使用以下装饰器完成的:

[SoapDocumentMethod(ParameterStyle=SoapParameterStyle.Bare)]
我查看了soaplib源代码,但它似乎没有类似的装饰程序。我找到的最接近的东西是
\u style
属性。从代码中可以看出-使用时

@soap(..., _style='document')
它没有附加
%sResult
标记,但我还没有对此进行测试。试一下,看看这是否符合你的要求

如果它不起作用,但您仍然希望得到这种响应,请查看Spyne:


它是soaplib(我想)的一个分支,有
\u soap\u body\u style='bare'
装饰器,我相信这就是你想要的。

u.unver34你能分享一下对你有用的东西吗?当然,我没有使用上述任何一种方法,我找到了另一种方法。根据一些关键字,我用django soap服务器返回点所需的树形式替换了不需要的标记和所有响应方案树。u.unver34您能分享对您有用的内容吗?当然,我没有使用上述任何方法,我找到了不同的方法。根据一些关键字,我用django soap服务器返回点所需的树形式替换了不需要的标记和所有响应方案树。