#python #django #django-views #cs50 #searchbar
Вопрос:
Я работаю над проектом CS50 1, чтобы создать панель поиска, которая просматривает возможные записи, похожие на Википедию, с помощью Django. Если вы введете точное название заголовка, вы будете перенаправлены на эту страницу ввода. Если точное имя записи не найдено, как отобразить список возможных записей с помощью запроса?
просмотры.поиск
def search(request):
entry_list = util.list_entries()
query = request.GET.get("q", "")
if query in entry_list:
return redirect(get_entry, query)
else:
results = []
for entry in entry_list:
if query in entry:
results.append(entry)
return render(request, "encyclopedia/index.html", {
"entry": results
})
index.html
{% extends "encyclopedia/layout.html" %}
{% block title %}
Encyclopedia
{% endblock %}
{% block body %}
<h1>All Pages</h1>
<ul>
{% for entry in entries %}
<a href = "wiki/{{ entry }}"><li>{{ entry }}</li></a>
{% endfor %}
</ul>
{% endblock %}
Если ищется что-либо, кроме точного заголовка, пользователь получает пустую страницу. Как мне это исправить?
Ответ №1:
Я все понял. Всем остальным, кто борется с этой частью проекта 1:
просмотры.поиск
`
поиск(запрос)def:
entry_list = util.list_entries()
query = request.GET.get("q", "")
if query in entry_list:
return redirect(get_entry, query)
else:
results = [entry for entry in entry_list if query.lower() in entry.lower()]
return render(request, "encyclopedia/index.html", {
"entries": results
})
`
Вы должны создать список для хранения возможных результатов и выполнить поиск по записям, используя цикл for и ключевое слово in.