我在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
方法。
有人可以解释一下我该如何做到这一点。
答案 0 :(得分:1)
您需要调用json函数以json格式获取响应。像
response = response.json()
然后,您可以像从id
对象中那样从中获取dict
。像
id = response["id"]
然后,您可以在对象中更新它们。喜欢
object.field_name = id
object.save()