我正在尝试创建一个搜索功能,通过数据库查找django数据库中的类似单词。
我的views.py:
def result(request): # Shows the matched result
query = request.GET.get('q')
incubators = Incubators.objects.all()
check = Incubators.objects.filter(incubator_name__icontains=query)
return render(request, 'main/results.html', {'incubators':incubators,'check': check})
问题是当我知道有HTML时,我的HTML页面没有显示任何与数据库匹配的结果。它只是一个黑色的HTML页面。
{%extends 'main/base.html'%}
{%block content%}
{%for inc in check%}
<p>{{inc.incubator_name}} <br> {{inc.city_location}}</p>
<hr>
{%endfor%}
{%endblock%}
我是Django的新手,真的很困惑我在这里做错了什么。
这是我的HTML文件,其中包含用于输入搜索元素的<form>
元素:
<form action="/results/" method="GET">
Search <input type="Name" name="inc_search"><br>
<input type="submit" name = 'q' value="Submit">
</form>
以下是我的results.html
以显示数据库中的匹配元素:
{%extends 'main/base.html'%}
{%block content%}
{%for inc in check%}
<p>{{inc.incubator_name}} <br> {{inc.city_location}}</p>
<hr>
{%endfor%}
{%endblock%}
答案 0 :(得分:1)
您的代码不会对请求中的值执行任何操作 - 只需获取它并将其丢弃即可。然后它使用字面值&#34; q&#34;搜索。
您需要将值分配给变量,并在过滤器中使用该变量。
query = request.GET.get('q')
check = Incubators.objects.filter(incubator_name__icontains=query)
请注意,这是一个基本的编程问题,特别是与Django无关。