0

我在我的 django rest 框架(DRF)后端 api 中使用这个 django 应用程序来管理我的 android 应用程序用户之间的双向友谊。在我的一个 DRF 视图中,我想返回一个包含所有用户未读好友请求的查询集。在django-friendship文档中它说

列出所有未读的友谊请求:

Friend.objects.unread_requests(user=request.user)

这是我的 ListAPIView:

class ListUnseenFriendRequests(generics.ListAPIView):
    serializer_class = serializers.FriendRequestSerializer
    permission_classes = (IsAuthenticated,)

    def get_queryset(self):
        return Friend.objects.unread_requests(user=self.request.user)

序列化器 FriendRequestSerializer 看起来像这样:

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)

我在序列化程序中使用与 django-friendship 源代码中的FriendshipRequest模型相同的字段名称。

当我运行服务器并向相应的端点 /friendship/list-unseen-friend-requests/ 发出 api 请求时,JSON 响应如下:

[
    {},
    {},
    {}
]

我已经向这个用户发送了 3 个好友请求,所以这个数字是正确的,但是它们都是空的。

如何解决此问题,以使好友请求不返回 null?

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

class FriendRequestSerializer(serializers.ModelSerializer):
    class Meta:
        model = FriendshipRequest
        fields = ('from_user', 'to_user', 'created')

调用 api 端点时的结果如下:

AttributeError: 'tuple' object has no attribute 'values'
[31/Jul/2017 08:26:32] "GET /friendship/list-unseen-friend-requests/ HTTP/1.1" 500 16150
4

0 回答 0