Моя форма поиска не отражает данные моей страницы DJANGO
В настоящее время я пытаюсь создать страницу поиска, которая показывает содержимое страницы, но она не работает. Пожалуйста, подскажите, что я делаю не так. У меня нет модели, на которую можно было бы сослаться, так как содержимое страниц было создано в папке utils.py с файлами, содержащими то, что я пытаюсь отобразить
Я пробовал две различные функции просмотра поиска и сломал себе голову, поэтому буду очень признателен за помощь в этом
URLS.PY
app_name = "encyclopedia"
urlpatterns = [
path("", views.index, name="index"),
path("wiki/<str:title>", views.entry_page, name="entrypage"),
path("search", views.search, name="search"),
]
LAYOUT.HTML
<form action="{% url 'encyclopedia:search' %}" method="get">
<input class="search" type="text" name="q" placeholder="Search Encyclopedia">
</form>
ENTRYPAGE.HTML
{% extends "encyclopedia/layout.html" %}
{% block title %} {{ title }} {% endblock %}
{% block body %}
{{ content|safe }}
{% endblock %}
INDEX.HTML
<h1>All Pages</h1>
<ul>
{% for entry in entries %}
<li><a href="{% url 'encyclopedia:entrypage' entry.title %}">{{ entry|safe }}</a></li>
{% endfor %}
</ul>
VIEWS.PY
def entry_page(request, title):
title = util.get_entry(title)
if title:
content = markdown2.markdown(title)
context = {
"title": title,
"content": content,
}
return render(request, "encyclopedia/entrypage.html", context)
else:
return render(request, "encyclopedia/errorpage.html")
# def search(request):
# if request.method == 'GET':
# query = request.GET.get('q')
# if query:
entries = util.list_entries()
# entries = entries.objects.filter(title__icontains=query)
# return render (request, "encyclopedia/entrypage.html", {'entries': entries,
'query': query})
# else:
# return render(request, "encyclopedia/errorpage.html")
# else:
# return render(request, "encyclopedia/index.html", {
# "entries": util.list_entries()
# })
def search(request):
entry_list = util.list_entries()
query = request.GET.get('q')
if query in entry_list:
return redirect ('encyclopedia/entrypage', query)
else:
return render(request, "encyclopedia/index.html")
Я написал два поисковых запроса, хотя второй был оставлен в качестве комментария, но оба не работают/отражают детали, которые я хочу