Как использовать Spyne+Django с параметрами в URL?

на django urls.py

url(r'soap/<str:user_id>/',
    DjangoView.as_view(application=provider)), 

на views.py

@ rpc(_returns=AnyDict)
def super_test_dict(self, one, two):
    user_id = 1 #here need to receive the user_id
    res = {"user_id":user_id}
    return res

на тестах.py

self.soap_client = DjangoTestClient(
        f'/soap/{org.str:user_id}/', provider)
res = self.soap_client.service.super_test_dict()

    

Проблема в том, что когда я отправляю параметр str:user_id, он не работает, но если ничего не отправляется, мне нужно отправить те же параметры, что и запрос, но также нужно отправить str:user_id по URL-адресу.


person Softsofter    schedule 07.01.2021    source источник


Ответы (1)


Декоратор вашего метода super_test_dict не отражает ожидаемые входные параметры.

Я не совсем уверен, что именно вы собираетесь делать, но чтобы получать входные данные в свой метод веб-службы, измените свой views.py, чтобы отразить следующее:

from spyne import Unicode, Integer

@ rpc(Unicode, Integer, _returns=AnyDict)
def super_test_dict(self, username, user_id):
    print(f"Hello: {username}, your ID is: {user_id}")
    res = {"user_id":user_id}
    return res

Также не забудьте указать in_protocol и out_protocol в приложении веб-службы 'provider< /strong> класс

Вы также можете получить дополнительную информацию из этих здесь и здесь

person Isaac T    schedule 05.02.2021