Django-Rest框架。如何将当前登录的用户从下拉菜单中排除出去?

问题描述 投票:0回答:1

我正在尝试创建一个博客API,用户可以通过从Dropdown中选择它来交朋友,但这里的问题是我不希望当前登录的用户进入Dropdown。

模型.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)

谢谢你。

python django-models django-rest-framework django-views django-serializer
1个回答
0
投票
def get_queryset(self):
    return Friendship.objects.filter(user=self.request.user).exclude(user=self.request.user)

你可以排除当前登录的用户。

最新问题
© www.soinside.com 2019 - 2024. All rights reserved.