如何在发送响应之前在 django 视图中重组 JSON?



我有一个django视图,它以JSON的形式返回FriendshipRequest模型实例的列表。

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)

JSON 响应如下所示:

[
{
"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
}
}
]

但是,我希望响应如下所示:

[
{
"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,
}
]

在发送响应之前,如何在视图中执行此操作?

您只需要重建 json 数据。 在返回您的 JsonResponce 之前,您可以这样做

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]

最新更新