Как вернуть набор запросов о дружбе в DRF ListAPIView?
Я использую это приложение django в моем интерфейсе API django rest Framework(DRF) для управления двунаправленной дружбой между пользователями моего приложения для Android. В одном из моих представлений DRF я хочу вернуть набор запросов всех непрочитанных запросов друзей пользователя. В документах о дружбе с джанго говорится, что
Список всех непрочитанных запросов дружбы:
Friend.objects.unread_requests(user=request.user)
Вот мой список APIView:
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)
Я использую те же имена полей в сериализаторе, что и модель FriendshipRequest в исходном коде django-Friends.
Когда я запускаю сервер и делаю api-запрос к соответствующей конечной точке / Friendship / List-Unseen-Friend-запросы /, 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