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

我有django rest_framework ListAPIView方法,它返回我的用户列表,如何从同一用户列表中排除请求用户,django,django-rest-framework,django-views,Django,Django Rest Framework,Django Views,序列化程序.py class UserSerializer(serializers.ModelSerializer): 类元: model=models.CustomUser 字段=('username'、'email'、'is\u active'、'is\u superuser') views.py class UserListView(generics.ListAPIView): queryset=models.CustomUser.objects.all() serializer\u c

序列化程序.py

class UserSerializer(serializers.ModelSerializer):
类元:
model=models.CustomUser
字段=('username'、'email'、'is\u active'、'is\u superuser')
views.py

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


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

只需使用exclude而不是all(),只需将代码修改为如下内容

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

覆盖get_queryset,如下所示

class UserListView(generics.ListAPIView):
serializer\u class=serializers.UserSerializer
def get_queryset(自我):
返回CustomUser.objects.exclude(email=self.request.user.email)


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

如果您使用它,它只会计算一次,一段时间后视图可能返回无效结果。@a_k_v不太明白为什么一段时间后视图可能返回无效结果?当您设置queryset时,当您启动服务器时,queryset只会创建一次。另一方面,每个请求都会调用get_queryset方法。不,它的工作方式不是每次调用此视图都会获取新的querysetcheck以供参考
self.request。user
将返回用户实例,不是表示
电子邮件的
字符串
,然后是request.user.email:)您应该在回答中更改:)