我正在尝试构建一个搜索系统,我希望通过django模型中的多个字段进行搜索。我写了下面的代码,但我一直不知道如何去做。
型号:
class Finhall(models.Model):
user=models.ForeignKey(User)
name=models.CharField(max_length=250, unique=True)
address=models.CharField(max_length=200)
city=models.CharField(max_length=200)
state=models.CharField(max_length=200)
def __unicode__(self):
return u'%s' % (self.name)
视图.py
def hup_find(request):
if ('q' in request.GET) and request.GET['q'].strip():
query_string=request.GET.get('q')
seens=Finhall.objects.filter(name__icontains=query_string)
else:
seens=None
return render_to_response('find.html',{'seens':seens},context_instance=RequestContext(request))
模板:
{% block content %}
<body>
<form action="" method="GET">
<input type="text" name="q" />
<button type="submit">search</button>
</form>
{% for seen in seens %}
<p> {{seen.name}}</p>
{% empty %}
<p> no search </p>
{% endfor %}
</body>
{% endblock %}
我该怎么办?由于个人原因,我不想用海萨克。
您可以使用django ^{} 对象执行
OR
查询或者,如果您想
AND
一起查询,只需将当前查找用作kwargs您真的应该考虑全文搜索或
haystack
(这使搜索变得容易),因为icontains
发出的%LIKE%
是不可远程扩展的要在多个字段中搜索同一文本,可以使用以下命令:
编辑:刚刚注意到这是只写博士后的
显然在django 1.10SearchVector类中添加了。
文档中的用法:
相关问题 更多 >
编程相关推荐