У меня есть метод django rest_framework ListAPIView, который возвращает мне список пользователей, как я могу исключить запрашивающего пользователя из того же списка пользователей - PullRequest
0 голосов
/ 27 сентября 2018

serializers.py

class UserSerializer(serializers.ModelSerializer): class Meta: model = models.CustomUser fields = ('username', 'email', 'is_active','is_superuser')

views.py

class UserListView(generics.ListAPIView): queryset = models.CustomUser.objects.all() serializer_class = serializers.UserSerializer


Я использую токен авторизации для URL, поэтому у меня будет токен пользователя в заголовках, из которого я могу идентифицировать и исключить, это то, что я хотел попробовать.

Ответы [ 2 ]

0 голосов
/ 27 сентября 2018

Переопределить get_queryset следующим образом

class UserListView(generics.ListAPIView): serializer_class = serializers.UserSerializer def get_queryset(self): return CustomUser.objects.exclude(email=self.request.user.email)

Я не проверял код.Но идея верна.

0 голосов
/ 27 сентября 2018

просто используйте exclude вместо all (), просто измените ваш код на что-то вроде этого

class UserListView(generics.ListAPIView):
    queryset = models.CustomUser.objects.exclude(username=request.username)
    serializer_class = serializers.UserSerializer
...