我正在嘗試基於用戶輸入過濾一個簡單的搜索表單。 這裏是我的views.pyDjango圖標不能在網站上工作,因爲它在外殼中工作
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
一個例子是,我有一種名爲硝酸的化學品。如果我將硝酸放入搜索欄中,它會顯示所有與硝酸名稱完全相關的信息。這也是我認爲不應該是icontains的大小寫敏感。同時尋找硝酸,硝酸,酸或酸沒有結果,這讓我覺得有什麼不對。我在shell中使用了相同的命令,它做了我期望的操作,但它在網站上執行的操作不一樣。有沒有人有任何洞見,爲什麼是這樣的情況? 謝謝,
什麼是化學制品中的名稱? – karthikr
它是models.CharField(max_length = 20) – user2482595
也可以在不刪除或銷燬實例的情況下創建實例(對不起,如果我的行話是關閉的,我是python和django的新手) – user2482595