【发布时间】:2021-04-28 09:51:49
【问题描述】:
搜索过滤器在此工作正常,需要使用用户定义的距离过滤掉列表,为此编写了一个 get 函数。现在,过滤器不见了。当我注释掉 get 函数时它就会出现。
class ServiceProviderList(generics.ListAPIView):
queryset = ProfileCompletion.objects.all()
serializer_class=ProfilecompletioneSerializer
filterset_class=SnippetFilter
filter_backends = [DjangoFilterBackend,SearchFilter]
filterset_fields = ['fullname', 'category','departments','services']
search_fields = ['fullname', 'category__name','departments__dept_name','services__service_name']
def get(self,request,*args, **kwargs):
pk=self.kwargs.get('pk')
customer = CustomerProfile.objects.get(user=pk)
Dist = request.GET.get("distance")
rad=float(Dist)
radius=rad/111
print(radius)
query = ProfileCompletion.objects.filter(location__distance_lte=(customer.location,radius))
serializer = ProfilecompletioneSerializer(query,many=True)
data = serializer.data
return Response({"message":"Listed Successfully.","data":data})
【问题讨论】:
-
分页也一样。在设置中全局调用。
标签: django rest django-rest-framework