你能帮我找一下django中的查询错误吗?

时间:2018-03-10 12:12:38

标签: django database

我正在尝试创建一个搜索功能,通过数据库查找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%}

1 个答案:

答案 0 :(得分:1)

您的代码不会对请求中的值执行任何操作 - 只需获取它并将其丢弃即可。然后它使用字面值&#34; q&#34;搜索。

您需要将值分配给变量,并在过滤器中使用该变量。

query = request.GET.get('q')
check = Incubators.objects.filter(incubator_name__icontains=query)

请注意,这是一个基本的编程问题,特别是与Django无关。