gpt4 book ai didi

python - 在 Django 中搜索多个字段

转载 作者:太空狗 更新时间:2023-10-30 00:30:05 30 4
gpt4 key购买 nike

我正在尝试构建一个搜索系统,我想在我的 Django 模型中通过多个字段 name, state, city, 进行搜索。我写了下面的代码,但我一直无法弄清楚如何去做。

模型:

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)

View .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 %}

我该怎么做?由于一些个人原因,我不想使用 haysatck。

最佳答案

你可以使用 django Q对象做 OR 查询,

或者如果你想AND你的查询在一起,只需使用当前查找作为kwargs

seens = Finhall.objects.filter(
name__icontains=query_string,
address__icontains=query_string
)

你真的应该考虑全文搜索或haystack(这使得搜索更容易)因为icontains发出一个%LIKE%,它不是远程的可扩展

关于python - 在 Django 中搜索多个字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16303735/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com