Django过滤器返回以输入查询开头的结果
我遇到了一个关于django查询结果的问题。
我有一个名为 Classified
的表格,我根据输入的查询内容 q
来进行搜索,具体操作如下:
def search(request):
q = request.get['query']
result = Classified.objects.filter(Q(name__icontains=q) | Q(category__icontains=q))
return render_to_response('search.html', {'result':result}, request)
举个例子,假设 Classified.name
里有 Amity
、Ambulance
、Camden
和 Cameroon
这几个名字。如果我输入 am
作为查询内容,根据上面的过滤条件,它会返回这四个名字。
我想问的是,怎么才能只返回 Amity
和 Ambulance
这两个结果呢?因为这是我的需求,而且这样可以让我的搜索页面更有效率。
2 个回答
1
我觉得 istartswith
这个过滤器会对你有帮助。你可以在这里查看详细信息:https://docs.djangoproject.com/en/dev/ref/models/querysets/#std:fieldlookup-istartswith
2
照你现在的做法去做,不过用 istartswith 代替 icontains。
https://docs.djangoproject.com/en/dev/ref/models/querysets/#istartswith