【问题标题】:Sorting table records in django在 django 中对表记录进行排序
【发布时间】:2013-04-28 02:42:37
【问题描述】:

我在 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');

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

【问题讨论】:

标签: mysql django python-2.7


【解决方案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>

【讨论】:

    猜你喜欢
    • 2013-07-17
    • 1970-01-01
    • 1970-01-01
    • 2018-06-21
    • 2019-08-04
    • 1970-01-01
    • 2022-01-06
    • 2012-12-08
    • 1970-01-01
    相关资源
    最近更新 更多