我已经使用Django SearchFilter DRF实现了搜索功能,该功能可以正常工作,但是问题是当我在搜索字段中未传递任何内容时,我不想显示所有查询。默认情况下,它返回所有查询。我不知道该如何处理。
views.py
class EventSearchView(generics.ListAPIView):
permission_classes = (AllowAny,)
queryset = Event.objects.all()
search_fields = ["name", "description","content"]
filter_backends = (filters.SearchFilter,)
serializer_class = EventSearchSerializer
pagination_class = LargeResultsSetPagination
当我搜索字段“名称”,“描述”时,它工作正常,但是当我不搜索任何内容并且默认情况下没有搜索字段时打入url时,它将返回所有查询,但是我什么也不显示。
我该如何实现?
尝试重写get_queryset
方法以检查是否query_params
包含数据:
class EventSearchView(generics.ListAPIView):
permission_classes = (AllowAny,)
search_fields = ["name", "description","content"]
filter_backends = (filters.SearchFilter,)
serializer_class = EventSearchSerializer
pagination_class = LargeResultsSetPagination
def get_queryset(self):
if self.request.query_params:
return Event.objects.all()
return Event.objects.none()
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句