嘿,伙计们,我有这个序列化器来获取待处理用户列表,
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中拥有用户信息,是否有可能像在第二个响应中那样组合它?
感谢可以重写PendingRequestSerializer
的to_representation()
方法返回other_user
值
class PendingRequestSerializer(serializers.ModelSerializer):
class Meta:
model = PendingRequest
def to_representation(self, instance):
return UserInfo(instance.other_user).data