【问题标题】:Django search not showing resultsDjango搜索不显示结果
【发布时间】:2023-05-29 11:23:01
【问题描述】:

所以我试图为模型设置搜索视图。但我认为我做错了什么。也许我传递了错误的论点?

def search(request):
    query = request.GET.get('q')
    if query:
        results = Course.objects.filter(Q(name__icontains=query))
    else:
        results = Course.objects.all()
    context = {
        'results': results,
    }
    return render(request, 'courses/index.html', context)

【问题讨论】:

  • 你能定义“不显示结果”吗?它不返回任何东西吗?他们不是在渲染吗?等
  • 以下问题已得到解答。

标签: python django


【解决方案1】:

在这种情况下,您不需要使用 Q,因此请删除 Q,为了获得更好的结果,您应该检查 q 是否为 ''。

def search(request):
    query = request.GET.get('q')
    if query and q != '':
        results = Course.objects.filter(name__icontains=query)
    else:
        results = Course.objects.all()
    context = {
        'results': results,
    }
    return render(request, 'courses/index.html', context)

【讨论】: