Как получить данные из формы и вставить их в шаблон?

Я пытаюсь сделать поисковый функционал в своем проекте. Есть форма, где человек может ввести название статьи и перенаправить на страницу этой статьи, если она существует. Но она всегда выдает мне "None". Если я, например, ввожу 'CSS', то в терминале выдается такая строка: "GET /search?csrfmiddlewaretoken=yzuY5iPKEJGJgFZE7D9GKoRhSxE2EsUVmVcvJvTuCG6Q2sEBHtiuzUJx2ZPu4fwb&title=CSS HTTP/1.1" 200 1264. Что делать?

Util.py:

import re

from django.core.files.base import ContentFile
from django.core.files.storage import default_storage


def list_entries():
    """
    Returns a list of all names of encyclopedia entries.
    """
    _, filenames = default_storage.listdir("entries")
    return list(sorted(re.sub(r"\.md$", "", filename)
                for filename in filenames if filename.endswith(".md")))


def save_entry(title, content):
    """
    Saves an encyclopedia entry, given its title and Markdown
    content. If an existing entry with the same title already exists,
    it is replaced.
    """
    filename = f"entries/{title}.md"
    if default_storage.exists(filename):
        default_storage.delete(filename)
    default_storage.save(filename, ContentFile(content))


def get_entry(title):
    """
    Retrieves an encyclopedia entry by its title. If no such
    entry exists, the function returns None.
    """
    try:
        f = default_storage.open(f"entries/{title}.md")
        return f.read().decode("utf-8")
    except FileNotFoundError:
        return None

Views.py:

from django.shortcuts import render, redirect
from django import forms
from . import util
from django.http import HttpResponseRedirect

def index(request):
    return render(request, "encyclopedia/index.html", {
        "entries": util.list_entries()
    })

def entry(request, title):
    return render(request, "encyclopedia/details.html", {
        "entry_info":util.get_entry(title),
        "title": title,
    })


class SearchForm(forms.Form):
    title = forms.CharField(label="title")

def search(request):
    if request.method == "GET":
        form = SearchForm(request.GET)
        if form.is_valid():
            title = form.cleaned_data['title']
            if title in util.list_entries:
                return render(request, "encyclopedia/details.html", {
                    "form": SearchForm(),
                    "title": title,
                    "entry_info": util.get_entry(title)
                })

layout.html:

<form action="{% url 'search' %}" method="get">
                    {% csrf_token %}
                    {{ form }}
                    <input type="text" label="title" name="title">
                </form>

search.html:

{% extends "encyclopedia/layout.html" %}
{% block body %}
<h1>Search Results for "{{ title }}"</h1>
{% if entry_info %}
    <p>{{ entry_info }}</p>
{% else %}
    <p>No entry found with the title "{{ title }}".</p>
{% endif %}
{% endblock body %}
Вернуться на верх