如何根据用户提供的过滤值显示搜索结果?

mil*_*lan 10 javascript python django ajax jquery

我开发了过滤系统,它提供3种选择,如房产类型,房间数量和最高价格.每次他们选择过滤器选项时,用户都会立即获得他们的搜索结果.例如,如果用户选择了公寓的房产类型和房间数为4且最高价格为12000,则用户将获得其房产类型为公寓的租金,其中4个房间为12000标记.我用React.js开发了前端部分,可以成功获取用户选择的数据.我还将数据传递给ajax但我不知道如何根据用户提供的过滤值显示搜索结果而不加载页面.

Ajax代码

$.ajax({
  type: 'GET',
  url: '/filter/space/',
  data{property:propertySelectedValue, room:roomSelectedValue, price:maxPrice},
  success: function(data){
    console.log(data['fields']);
  },
  error: function(XMLHttpRequest, textStatus, errorThrown){
    console.error("Status: " + textStatus); alert("Error: " + errorThrown);
  },
});
Run Code Online (Sandbox Code Playgroud)

Views.py

class FilterSpace(View):
    def get(self,request,*args,**kwargs):
        property = request.GET.get('property',None)
        room = request.GET.get('room', None)
        price = request.GET.get('price', None)
        rental = Rental.objects.all()
        if room:
            rental = rental.filter(room=room)
            print('rental',rental)
        if price:
            rental = rental.filter(price__lte=price)
        if property:
            rental = rental.filter(property=property)
        rental_json =  serializers.serialize('json',rental)
        print('rental_json',rental_json)
        return HttpResponse(rental_json,content_type="application/json")
Run Code Online (Sandbox Code Playgroud)

小智 0

为了提高 python 的效率,您应该找到使用所有参数过滤一次的方法,而不是过滤过滤后的过滤后的过滤器,但这对于查看结果并不是必需的。

在里面success: function(data){你应该使用 jQuery 放入data页面中,你可以从类似的东西开始

function data2html(data) {
   ...// use .map and .join
}
$("#divid").append(data2html(data))
Run Code Online (Sandbox Code Playgroud)