Строка поиска CS50 Проект 1 Вопрос: Как сделать так, чтобы строка поиска фильтровалась по записям, чтобы найти возможные и отобразить их в списке?

#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.