我正在尝试创建一个博客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)
谢谢你。
def get_queryset(self):
return Friendship.objects.filter(user=self.request.user).exclude(user=self.request.user)
你可以排除当前登录的用户。