参数不正确的Django REST Framework API请求返回所有对象

参数不正确的Django REST Framework API请求返回所有对象,django,django-rest-framework,Django,Django Rest Framework,当有人要求: 127.0.0.1:8000/api/当前元数据?一些不存在的字段=1 这段代码返回所有内容。我希望它什么也不归还。某种严格的设置 class GetCrtMetadata(generics.ListAPIView): permission_classes=[IsAuthenticated] serializer_class = CurrentDeploymentSerializer queryset=deployment.objects.all()

当有人要求:

127.0.0.1:8000/api/当前元数据?一些不存在的字段=1

这段代码返回所有内容。我希望它什么也不归还。某种严格的设置

class GetCrtMetadata(generics.ListAPIView):
    permission_classes=[IsAuthenticated]
    serializer_class = CurrentDeploymentSerializer
    queryset=deployment.objects.all()
    filter_backends = [DjangoFilterBackend]
    filter_fields = [field.name for field in deployment._meta.fields]

无效参数无法使筛选器正常工作,因此如果要返回空,应验证查询参数:

类GetCrtMetadata(泛型.ListAPIView):
...
def是有效的参数(自身):
#做点什么来验证参数
def get_queryset(自我):
"""
库索特姆得到了质疑
"""
queryset=super()
如果self.action==“list”而不是self.is\u有效\u参数():
返回queryset.none()
返回查询集

您有一个返回所有内容的视图(
deployment.objects.all()
)。如果您传递一个未知的querystring参数,它只会忽略它,从而返回所有。你的要求听起来很合理,但很不寻常,而且没有现成的方法。您需要的是一个函数,如
if no\u valid\u filters\u passed\u in\u qs():return[]