【问题标题】:Getting an empty query set Django获取一个空的查询集 Django
【发布时间】: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


【解决方案1】:

这是一个真正奇怪的问题。浏览器缓存需要很长时间才能刷新我更新的代码。清除浏览器缓存和设置后,它又开始工作了。

【讨论】:

    猜你喜欢
    • 2018-12-04
    • 1970-01-01
    • 2013-01-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-10
    • 1970-01-01
    相关资源
    最近更新 更多