我正在尝试使用简单的搜索表单根据用户输入进行过滤。这是我的views.py中的相关代码
def search(request):
error = False
if 'q' in request.GET and request.GET['q']:
q = request.GET['q']
if not q:
error = True
elif len(q) > 20:
error = True
else:
chemicals = Chemicals.objects.filter(Name__icontains=q)
return render_to_response('search_results.html', locals(), context_instance=RequestContext(request))
return render_to_response('search_form.html',{'error':True})
模板
<table>
<th>Barcode</th>
<th>Name</th>
<th>Description</th>
{% for chemical in chemicals %}
{% ifequal chemical.Name q %}
<tr>
<td>{{ chemical.Barcode }} </td>
<td>{{ chemical.Name }} </td>
<td>{{ chemical.Description }} </td>
{% endifequal %}
{% endfor %}
</table>
下一部分是我在 search_results.html 中嵌入的内容
一个例子是我有一种名为硝酸的化学物质。如果我将 Nitric Acid 放在搜索栏中,它将显示所有名称为 Nitric Acid 的所有事物的所有相关信息。它也是区分大小写的,我认为 icontains 不应该是。也搜索 Nitric、nitric、Acid 或 acid 没有结果,这让我觉得有问题。我在 shell 中使用了相同的命令,它完成了我期望它做的事情,但它在网站上的表现不同。有没有人知道为什么会这样?谢谢,