Передача нескольких аргументов в ответ 'Response' (python) - PullRequest
3 голосов
/ 30 января 2020

Я работаю в Angular и использую Http-запрос и ответ. Можно ли отправить несколько аргументов в «Ответ».

Angular файл:

this.http.get("api/agent/applicationaware").subscribe((data:any)...

python файл:

def get(request):
    ...
    return Response(serializer.data)

Я хочу отправить несколько аргументов в ответе. Как

return Response(serializer.data,obj.someothervalue)

Вы можете мне помочь с этим? Заранее спасибо:)

Ответы [ 3 ]

3 голосов
/ 30 января 2020

Вы можете вернуть dictionary

return Response({'serializer_data': serializer.data, 'some_other_value': obj.someothervalue})

Или можете добавить someothervalue к serializer.data

data = serializer.data
data['someothervalue'] = obj.someothervalue
return Response(data)

Если obj.someothervalue также является словарем, то Вы можете объединить два словаря:

data = serializer.data.copy()
data.update(obj.someothervalue)
return Response(data)
1 голос
/ 30 января 2020

Сначала вам нужно выбрать протокол для ответа API, а затем планировать его соответствующим образом.

Чтобы ответить на ваш вопрос, ДА, вы можете отправить несколько аргументов в ответ.

Вы можете создать словарь / список и поместите все значения, которые вы хотите отправить внутри него. Теперь отправьте этот словарь / список как ваш ответ. Я бы порекомендовал что-то вроде этого:

response = dict()
response["data"] = dict()
response["data"]["serializer_data"] = serializer.data
response["data"]["some_other_value"] = obj.someothervalue

return Response(response)

На получающем конце ответа вам нужно будет прочитать данные ответа так же, как вы их отправили.

1 голос
/ 30 января 2020

добавить словарь

dict = {}
dict['details'] = serializer.data
dict['other'] = someotherdata
return Response(dict)

надеюсь, это поможет

...