1

我在 django 中使用了一个搜索字段,该字段根据酒店名称从酒店表中搜索酒店名称。为了搜索,我正在使用 django 的功能__search

data=request.POST.get("data") 
data=models.hotels.objects.filter(name__search=name)

默认情况下,它在 BOOLEAN MODE 中搜索

SELECT name FROM table WHERE MATCH(name)AGAINST('data' IN BOOLEAN MODE );

但是没有按照最佳匹配排列结果是否有任何方法可以更改搜索功能以进行如下查询:

SELECT name FROM table WHERE MATCH(name)AGAINST('data');

删除顶部最佳匹配的布尔排序模式?

4

1 回答 1

1

在 Django 中使用“搜索”很容易。在这里,我试图从生成的报告中搜索名称。

from django.db.models import Q

def report(request):
    data = Subscribers.objects.all()
    template = 'report.html'
    query = request.GET.get("q")
    if query:
        data = data.filter(
            Q(billNumber__icontains=query) |
            Q(name__icontains=query) |
            Q(area__icontains=query) |
            Q(phoneNumber__icontains=query)
        ).distinct()
    return render(request, template, {'entries': data})

在要实现搜索的 html 页面中添加以下代码:

<form>
  <input type="text" name="q" placeholder="Search Subscribers.." value="{{ request.GET.q }}">
</form>
于 2017-07-05T05:02:49.693 回答