我正在使用SPYNE这是第一次,我对如何用我的 ComplexModel 做出响应有点困惑。
#service.py
class Status(ComplexModel):
statusCode = Integer
statusMsg = String
class ResponseData(ComplexModel):
status = Array(Status)
version = Integer
class SoapService(ServiceBase):
@rpc(String, _returns=ResponseData)
def doSomething(ctx, name):
# ...
# do something to get a django-model-object
obj_data = Servers.objects.get(host=name)
# put vars from the django-model-object into 'ResponseData' and nested 'Status'
# e.g. statusCode = 1, statusMsg = 'online', version = 1
""" experimental - status is not returned - version is 1:
obj_status = Status()
obj_status.statusCode = 1
obj_status.statusMsg = 'online'
retval = ResponseData()
retval.status = obj_status
retval.version = 1
"""
return retval
最佳答案
我已经找到解决办法了。这是一个小演示。
#service.py
class Status(ComplexModel):
statusCode = Integer
statusMsg = String
class ResponseData(ComplexModel):
status = Array(Status)
version = Integer
class SoapService(ServiceBase):
@rpc(String, _returns=ResponseData)
def doSomething(ctx, name):
obj_data = Servers.objects.get(host=name)
if obj_data.status:
my_statusCode = 1
my_statusMsg = 'online'
else:
my_statusCode = 0
my_statusMsg = 'offline'
retval = ResponseData()
retval.status = [{'statusCode': my_statusCode, 'statusMsg': my_statusMsg}]
retval.version = 1
return retval
关于python - Spyne/RPClib - 如何响应 ComplexModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12461577/