我在我的django rest框架(DRF)后端api中使用this django app来管理我的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个好友请求,因此该号码是正确的,但它们都是空的。
如何解决此问题,以便将朋友请求返回为空?
我尝试将序列化程序更改为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