python - 使用 Django 搜索的子字符串
问题描述
如何使用 Django 搜索文件名的子字符串
视图.py
def search(request):
entries = util.list_entries()
find_entries = list()
search_box = request.POST.get("q").capitalize()
if search_box in entries:
return HttpResponseRedirect(f"wiki/{search_box}")
for entry in entries:
if search_box in entry:
find_entries.append(entry)
return render(request, "encyclopedia/search.html", {
"search_result": find_entries,
"search": search_box
})
else:
print(f'{find_entries}')
else:
return render(request, "encyclopedia/search.html", {"no_result": f"No results for {search_box}"})
搜索.html:
{% extends "encyclopedia/layout.html" %}
{% block title %}
search results
{% endblock %}
{% block body %}
{% for result in search_result %}
<li><a href=wiki/{{ result }}>{{ result }}</a></li>
{% endfor %}
<h1>{{ no_result }}</h1>
{% endblock %}
我试过但只返回一个结果,例如如果我搜索'd'
它只返回django
然后停止 for 循环而不返回另一个值,例如节点
解决方案
第一次成功迭代后,您将退出 for 循环。更改代码如下:
for entry in entries:
if search_box in entry:
find_entries.append(entry)
else:
print(f'{find_entries}')
if find_entries:
return render(request, "encyclopedia/search.html", {
"search_result": find_entries,
"search": search_box
})
...
推荐阅读
- javascript - 算法的运行时间 Hackkerrank 插入排序问题
- css - 复选框单击输入。其他帖子的复选框被选中
- ruby-on-rails - 如何在 Rails 中创建具有多向关联的三重嵌套对象
- python - 使用python列出索引超出范围错误 - 线性搜索代码
- .net-core - .NET Core DbContext 阻止后续请求
- python - Two functional functions when called together creates an error
- automationanywhere - 我需要在名称中包含“RPA”的文件夹中打开一些文件。那么我怎样才能在任何地方的自动化中做到这一点呢?
- c++ - PyTorch C++ 扩展:访问半张量的数据
- json - React-Native: Parsing Simple JSON GET/POST and Refresh every X Seconds
- c# - 可以将 ASMX Web 服务制作成 REST api 吗?