我在 Django 的搜索功能中遇到问题。功能如下:
def search(request):
if request.method == 'GET':
query = request.GET.get('query','')
allPosts = Post.objects.filter(Q(title__icontains=query) | Q(content__icontains=query))
return render(request, 'dn/search.html', {'allPosts':allPosts, 'query':query})
搜索表格如下:
<form class ="{% url 'search' %} d-flex" method="get">
<input class="form-control me-2" type="text" name="query" placeholder="Search" aria-label="Search">
<button class=" text-white text-uppercase fw-bold btn btn-outline-primary light border-1 rounded-pill border-white border border-1" type="submit">Search</button>
</form>
搜索页面如下:
{%extends 'dn/base.html'%}
{% block title %} Search Results | active {% endblock title %}
{% block content %}
<div class="container">
{% if allposts %}
{% for query in allposts %}
<div class="row">
<div class = "col md-12">
<h3>{{query.title}}</h3> <br>
</div>
<div class="col-md-12">
<p>{{query.content}} </p>
</div>
</div>
{% endfor %}
{% else %}
<p><h3> No Search Results </h3></P>
{% endif %}
</div>
{%endblock%}
但是,在系统中搜索任何内容时都没有显示结果。
你能指导我得到结果时缺少什么吗?
谢谢你。
问候 SSA
模板中的变量名称区分大小写。
用途:
{% if allPosts %}
{% for query in allPosts %}
而不是:
{% if allposts %}
{% for query in allposts %}