Я пытаюсь сделать небольшой веб-сервис "Hello World" с Django, следуя нескольким учебникам, но я снова и снова сталкиваюсь с одним и тем же препятствием Я определил view.py и soaplib_handler.py:
view.py:
from soaplib_handler import DjangoSoapApp, soapmethod, soap_types
class HelloWorldService(DjangoSoapApp):
__tns__ = 'http://saers.dk/soap/'
@soapmethod(_returns=soap_types.Array(soap_types.String))
def hello(self):
return "Hello World"
soaplib_handler.py:
from soaplib.wsgi_soap import SimpleWSGISoapApp
from soaplib.service import soapmethod
from soaplib.serializers import primitive as soap_types
from django.http import HttpResponse
class DjangoSoapApp(SimpleWSGISoapApp):
def __call__(self, request):
django_response = HttpResponse()
def start_response(status, headers):
status, reason = status.split(' ', 1)
django_response.status_code = int(status)
for header, value in headers:
django_response[header] = value
response = super(SimpleWSGISoapApp, self).__call__(request.META, start_response)
django_response.content = "\n".join(response)
return django_response
И кажется, что строка "response = super ...." доставляет мне неприятности. Когда я загружаю /hello_world/services.wsdl, сопоставленный в url.py, я получаю:
AttributeError at /hello_world/service.wsdl
У объекта 'module' нет атрибута 'tostring'
Полное сообщение об ошибке см. Здесь:
http://saers.dk:8000/hello_world/service.wsdl
Есть ли у вас какие-либо предложения относительно того, почему я получаю эту ошибку? А где определяется ElementTree?