我有django rest_framework ListAPIView方法,该方法返回我用户列表,我如何从同一用户列表中排除请求用户

时间:2018-09-27 10:34:09

标签: django django-rest-framework django-views

  

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


我正在使用auth令牌作为URL,因此我将在标头中使用用户令牌,从中可以识别和排除用户令牌,这是我想尝试的。

2 个答案:

答案 0 :(得分:1)

按如下方法覆盖get_queryset

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

我没有测试代码。但是这个想法是正确的。

答案 1 :(得分:0)

只需使用exclude代替all(),只需将代码修改为类似

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