查询api响应的内容

时间:2019-02-06 05:59:24

标签: django django-rest-framework python-requests

我在ModelViewSet中有一个create方法,在验证并清理了序列化程序之后,我正在使用requests库发出发布请求。

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 :(得分:1)

您需要调用json函数以json格式获取响应。像

response = response.json()

然后,您可以像从id对象中那样从中获取dict。像

id = response["id"]

然后,您可以在对象中更新它们。喜欢

object.field_name = id
object.save()