【发布时间】:2018-04-11 20:44:37
【问题描述】:
我正在尝试创建一个非常简单的搜索功能,该功能将通过搜索表单中输入的关键字进行过滤。
html 搜索表单:
<form method="get" action="{{ request.get.q }}">
<input type="search" type="text" name="q" placeholder=„search">
<button type="submit">search</button>
</form>
views.py:
def search(request):
query = request.GET.get(q)
if query:
results = Sklep.objects.filter(miasto=query)
if results.count():
context_dict['results'] = results
else:
context_dict['no_results'] = query
return render(request, "apka/lista.html", context_dict)
显示结果的div:
<div>
{% if no_results %}
No results returned for <q>{{ no_results }}</q>
{% else %}
{% for result in results %}
{{ result.miasto }}
{% endfor %}
{% endif %}
</div>
最后是models.py:
from django.db import models
class Sklep(models.Model):
miasto = models.CharField(
max_length=200,
)
nazwa = models.CharField(
max_length=200,
)
adres = models.CharField(
max_length=200,
)
def __str__(self):
return self.miasto +", "+ self.nazwa+", "+self.adres`
模板似乎没有显示任何结果,既没有“没有结果...”也没有任何过滤条目。我做错了什么?
【问题讨论】:
-
你能检查这个函数是否被执行,并在 if query: print("query") 里面做一个 print 并且检查 action="{{ request.get.q }}" URL 是否正确