Django Rest框架-如何以某种方式获得json响应,以便在前端更容易访问?



嘿,伙计们,我有这个序列化器来获取待处理用户列表,

class UserInfo(serializers.ModelSerializer):
class Meta:
model       = Account
fields      = ['id', 'username',]
class PendingRequestSerializer(serializers.ModelSerializer):
other_user  = UserInfo(read_only=True)
class Meta:
model = PendingRequest
fields = ['other_user', ]

views.py

class PendingRequestListApiView(APIView):
permission_classes      = (IsAuthenticated,)
def get(self, *args, **kwargs):
user                 = PendingRequest.objects.filter(user=self.request.user)
serializer           = PendingRequestSerializer(user, many=True)
return Response(serializer.data, status=status.HTTP_200_OK)

我得到这样的json响应。

[
{
"other_user": {
"id": 8,
"username": "testuser5"
}
},
{
"other_user": {
"id": 4,
"username": "testuser2"
}
}

)

我希望json响应看起来像这样。

"results": [
{
"id": 4,
"username": "testuser2",
},
{
"id": 8,
"username": "testuser5",
}
]

这不是在单独的other_user中拥有用户信息,是否有可能像在第二个响应中那样组合它?

感谢

可以重写PendingRequestSerializerto_representation()方法返回other_user

class PendingRequestSerializer(serializers.ModelSerializer):

class Meta:
model = PendingRequest
def to_representation(self, instance):
return UserInfo(instance.other_user).data

最新更新