Reputation: 2136
I have a django view which returns a list of FriendshipRequest model instances as JSON.
class ListUnseenFriendRequests(generics.GenericAPIView):
permission_classes = (IsAuthenticated,)
def get(self, request, format=None):
friendship_requests_list = json.loads(serializers.serialize('json', Friend.objects.unread_requests(user=request.user)))
return JsonResponse(friendship_requests_list, safe=False)
The JSON response looks like this:
[
{
"pk": 8,
"model": "friendship.friendshiprequest",
"fields": {
"created": "2017-07-27T14:02:28.492Z",
"rejected": null,
"to_user": 4,
"from_user": 6,
"message": "",
"viewed": null
}
},
{
"pk": 20,
"model": "friendship.friendshiprequest",
"fields": {
"created": "2017-07-31T08:03:27.887Z",
"rejected": null,
"to_user": 4,
"from_user": 14,
"message": "",
"viewed": null
}
}
]
However I would like to have the response look like this:
[
{
"pk": 8,
"created": "2017-07-27T14:02:28.492Z",
"to_user": 4,
"from_user": 6,
},
{
"pk": 20,
"created": "2017-07-31T08:03:27.887Z",
"to_user": 4,
"from_user": 14,
}
]
How can I do this in the view before the response is sent?
Upvotes: 0
Views: 83
Reputation: 432
You just need to rebuild the json data. Before return your JsonResponce, you may do like this
new_json_list = [{"pk": x["pk"], \
"created": x["fields"]["created"], \
"to_user": x["fields"]["to_user"], \
"from_user": x["fields"]["from_user"]} \
for x in friendship_requests_list]
Upvotes: 1