Python 返回用户时响应为空';s未读友谊请求DRF

Python 返回用户时响应为空';s未读友谊请求DRF,python,json,django-rest-framework,django-serializer,Python,Json,Django Rest Framework,Django Serializer,我有一个DRFListAPIView,它应该返回用户所有好友的查询集。我用它来管理双向友谊 以下是ListAPIView的get\u queryset函数: def get_queryset(self): return FriendshipRequest.objects.select_related('from_user', 'to_user').filter( to_user=self.request.user, view

我有一个DRF
ListAPIView
,它应该返回用户所有好友的查询集。我用它来管理双向友谊

以下是
ListAPIView
get\u queryset
函数:

def get_queryset(self):
    return FriendshipRequest.objects.select_related('from_user', 'to_user').filter(
                to_user=self.request.user,
                viewed__isnull=True).all()
这将返回一个查询集。在README.rst文件中,它表示使用
Friend.objects.unread_请求(user=request.user)
来获取用户所有未读
FriendshipRequest
模型实例的列表。但是,
get\u queryset
函数应该返回查询集,而不是列表。相反,我复制(第198行)以获取
FriendshipRequest
实例的查询集

以下是当前正在使用的序列化程序:

class FriendRequestSerializer(serializers.Serializer):
    from_user = models.ForeignKey(User, related_name='friendship_requests_sent')
    to_user = models.ForeignKey(User, related_name='friendship_requests_received')
    created = models.DateTimeField(default=timezone.now)
我还想序列化
友谊请求
id
,但不确定需要什么代码来实现这一点

但是,即使该用户确实有看不见的好友请求,响应如下:

[
    {},
    {},
    {}
]
此用户总共有3个未读好友请求,但为什么它们完全为空

如果我尝试将序列化程序更改为ModelSerializer,如下所示:

class FriendRequestSerializer(serializers.ModelSerializer):
    class Meta:
        model = FriendshipRequest
        fields = ('id', 'from_user', 'to_user', 'created')
存在状态代码500,内部服务器错误,原因是:

AttributeError: 'tuple' object has no attribute 'values'
[01/Aug/2017 10:20:18] "GET /friendship/list-unseen-friend-requests/ HTTP/1.1" 500 16149
如何使用
get_queryset
函数返回
FriendshipRequest
模型实例的非空查询集,并由
ListAPIView
作为列表返回

思想

如果
ListAPIView
最终将查询集转换为列表,而code
Friend.objects.unread_请求(user=request.user)
返回
FriendshipRequest
模型实例的列表,那么为什么不使用
GenericAPIView
,重写get方法并将列表作为JSON直接返回,从而无需处理queryset

唯一的问题是,我不知道如何将FriendshipRequest实例列表转换为JSON格式的列表。我认为这是一个更好的方法

有人知道怎么做吗