Django -Rest Framework: как мне исключить текущего вошедшего в систему пользователя из раскрывающегося списка - PullRequest
0 голосов
/ 28 мая 2020

Я пытаюсь создать API блога, где пользователи могут подружиться, выбрав его из раскрывающегося списка. но здесь проблема в том, что я не хочу, чтобы текущий зарегистрированный пользователь в раскрывающемся списке

models.py

class Friendship(models.Model):

friend_of= models.ForeignKey(User, related_name="friend_of", on_delete=models.CASCADE)
user = models.ForeignKey(User, related_name="friends", on_delete=models.CASCADE)

serializers.py

class FriendSerializer(serializers.ModelSerializer):

user = serializers.HiddenField(default=serializers.CurrentUserDefault())
url = serializers.HyperlinkedIdentityField(view_name='single-friend', read_only=True)

class Meta:
    model = Friendship
    fields = ['id', 'url', 'friend_of', 'user']

    validators = [
        UniqueTogetherValidator(
            queryset=Friendship.objects.all(),
            fields=['friend_of', 'user']
        )
    ]

views.py

class Friend(generics.ListCreateAPIView):
serializer_class = FriendSerializer
permission_classes = [permissions.IsAuthenticated]

def get_queryset(self):
    """
    This view should return a list of all the friends
    for the currently authenticated user.
    """
    return Friendship.objects.filter(user=self.request.user)

Спасибо.

1 Ответ

0 голосов
/ 28 мая 2020
def get_queryset(self):
    return Friendship.objects.filter(user=self.request.user).exclude(user=self.request.user)

Вы можете исключить текущего авторизованного пользователя.

...