我正在制作一个房地产应用程序,该应用程序现在只能使用搜索功能。我的主要问题是我必须创建一个搜索功能,该功能可以根据用户选择的内容过滤查询集。 而且我能够做到,但问题是用户可以过滤两个选项,即面积和价格,它们都有最小值和最大值,所以我必须如何制作一个可以同时包含最小值和最大值的过滤器,然后显示过滤器查询集,其中包含值介于最小值和最大值之间的对象。
这是我的搜索功能
def search(request):
queryset = models.Property.objects.all()
query1 = request.GET.get('q1')
query2 = request.GET.get('q2')
query3 = request.GET.get('q3')
query4 = request.GET.get('q4')
query5 = request.GET.get('q5')
query6 = request.GET.get('q6')
if query:
queryset = queryset.filter(
Q(status__icontains=query)|
Q(address__icontains=query2)|
Q(rooms__icontains=query3)|
Q(bathroom__icontains=query4)|
Q(area__icontains=query5)|
Q(price__icontains=query6)
).all()
return render(request,'properties/properties_search_list.html',{'queryset':queryset})
这是html中的区域和价格代码
<div class="range-slider">
<label>Area</label>
<div data-min="0" data-max="10000" data-min-name="min_area" data-max-name="max_area" data-unit="Sq ft" class="range-slider-ui ui-slider" aria-disabled="false" name="q5" ></div>
<div class="clearfix"></div>
</div>
<div class="range-slider">
<label>Price</label>
<div data-min="0" data-max="150000" data-min-name="min_price" data-max-name="max_price" data-unit="USD" class="range-slider-ui ui-slider" aria-disabled="false" name="q6" ></div>
<div class="clearfix"></div>
</div>