запрос API ответ для контента - PullRequest
0 голосов
/ 06 февраля 2019

У меня есть метод создания в моем ModelViewSet, и после проверки и очистки сериализатора я делаю почтовый запрос, используя запросы библиотеку.

def create(self, request):
    serializer = MySerializer(data=request.data, context={'request': request})
    if serializer.is_valid():
        serializer.save()

        # post to remote server
        response = requests.post(
            url='{}/server'.format(settings.URL),
            json=do_some_cleaning(serializer.data)
        )
        logger.debug('response from server >>>>=%s', response.json)
        return Response({'response': response}, status=response.status_code, data=response.json)
    return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)

Мне нужно проверитьмой ответ получает id и сохраняет его в объекте, или, если его там нет, нужно запросить его и проверить, есть ли у меня, мне нужен этот id, чтобы я мог работать с методом PUT.Может кто-нибудь, пожалуйста, объясните мне, как я могу этого достичь.

1 Ответ

0 голосов
/ 06 февраля 2019

Вам нужно вызвать функцию json, чтобы получить ответ в формате json.Что-то вроде

response = response.json()

Тогда вы можете получить id из него, как если бы вы сделали из dict объекта.Что-то вроде

id = response["id"]

Тогда вы можете обновить то же самое в вашем объекте.Как

object.field_name = id
object.save()
...