【发布时间】:2021-12-16 07:27:55
【问题描述】:
我正在尝试开发搜索功能,但每次只能获得一个空查询集。
class SearchView(TemplateView):
template_name = "search.html"
def get_context(self, **kwargs):
context = super().get_context(**kwargs)
kw = self.request.GET.get("search")
results = Thread.objects.filter(Q(heading__icontains=kw) | Q(thread_content__icontains=kw))
print(results)
context["results"] = results
return context
模板
{% extends 'base.html' %}
{% block title %}Search{% endblock %}
{% block content %}
<div class = "container">
<div class = "row">
<div class = "col-md-12">
<h3>Search results for <span class="text-info">"{{ request.GET.search }}"</span></h3>
<h3>{{results}}</h3>
<hr>
{% for item in results %}
<div class="col-md-4">
<img src = "{{item.image.url}}" class="img-fluid" alt = "">
</div>
<div class="col-md-8">
<h4>{{item.heading}}</h4>
<p>{{item.thread_content}}</p>
</div>
{%endfor%}
</div>
</div>
</div>
{% endblock %}
request.GET.search 正确返回,但其余部分未显示
【问题讨论】:
-
显示结果了吗?
-
表中可能没有包含您要搜索的字词的数据。您正在将结果打印为输出,因此请检查控制台的输出,也许您可以在那里看到结果
-
奇怪的是,相同的代码在一段时间后开始工作。在控制台中不起作用的打印语句也在一段时间后开始打印。我的 Debug 是 ON 我不知道为什么我的响应有延迟
标签: django search django-queryset