参数不正确的Django REST Framework API请求返回所有对象
当有人要求: 127.0.0.1:8000/api/当前元数据?一些不存在的字段=1 这段代码返回所有内容。我希望它什么也不归还。某种严格的设置参数不正确的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()
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[]