2013-06-25 56 views
0

我正在嘗試基於用戶輸入過濾一個簡單的搜索表單。 這裏是我的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中使用了相同的命令,它做了我期望的操作,但它在網站上執行的操作不一樣。有沒有人有任何洞見,爲什麼是這樣的情況? 謝謝,

+0

什麼是化學制品中的名稱? – karthikr

+0

它是models.CharField(max_length = 20) – user2482595

+0

也可以在不刪除或銷燬實例的情況下創建實例(對不起,如果我的行話是關閉的,我是python和django的新手) – user2482595

回答

1

的問題是你的ifequal測試:

{% ifequal chemical.Name q %} 

,這並不表明該行,除非化學名稱正好等於Q值。

+0

謝謝,我的部分愚蠢的錯誤。我記得現在我正試圖調試一個特定的條目,這是我爲什麼在那裏顯示的原因。只是要表明你應該休息一會兒。 = D我很感激。 – user2482595

相關問題