Reputation: 2641
I have a create method in my ModelViewSet
and after validating and cleaning the serializer I'm making a post request using requests library.
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)
I need to check my response get the id
and store it in the object, or if it's not there need to query it and check do i have it, I need this id
so I can work on the PUT
method.
Can someone please explain me how can I achieve this.
Upvotes: 0
Views: 139
Reputation: 4635
You need to call the json function to get response in json format. Something like
response = response.json()
Then you can fetch id
from it like you would do from a dict
object. Something like
id = response["id"]
Then you can update the same in your object. Like
object.field_name = id
object.save()
Upvotes: 1