Django过滤器返回以输入的查询开头的结果

时间:2014-08-18 07:08:05

标签: python django django-queryset

我遇到与django queryset返回的结果有关的问题。

我有一个表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包含AmityAmbulanceCamdenCameroon。如果我输入am作为我的查询,根据上面的过滤器,它将返回前面提到的所有四个条目。

我的问题是,如何让它仅返回AmityAmbulance作为结果,因为这是我的要求,而且它使我的搜索页面更加注重结果。

2 个答案:

答案 0 :(得分:2)

完全按照你所做的去做但使用istartswith而不是icontains

https://docs.djangoproject.com/en/dev/ref/models/querysets/#istartswith

答案 1 :(得分:1)