Django выполняет итерацию по списку, возвращая отдельные элементы в шаблоне

Я новичок в django, поэтому решение, которое я ищу, возможно, очень простое. Однако, я прочитал все, что смог найти об итерации списка в шаблонах, но все еще не могу понять, как это сделать правильно.

Я работаю над функцией поиска, которая принимает запрос и сравнивает его со списком записей ("записи"). Если запрос является подстрокой одной из записей в списке, я хочу добавить эту запись в список ('results'). Затем я хочу вывести элементы списка 'results' из шаблона.

def search(request):
    query = request.POST["q"]
    if util.get_entry(query) == None:
        results = ["foo", "baz"], 
        entries =  util.list_entries(),
        for entry in entries:
            if query in entry:
                    results.append(entry)
        
        return render(request, "encyclopedia/search.html", {
        "title": query,
        "results": results,
        "entries": entries
    })

и шаблон:

   <ul>
        {% for result in results %}
            <li>{{  result }}</li>

        {% endfor %}
    </ul>
    <h3>For testing purposes:</h3>
    <ul>
        {% for entry in entries %}
            <li>{{  entry }}</li>

        {% endfor %}
    </ul>

Однако я не могу заставить его работать. Для тестирования я сначала попробовал вывести список записей из шаблона. Но вместо того, чтобы печатать отдельные записи, он, похоже, печатает полный список:

    ['foo', 'baz']
    
    For testing purposes:
    
    ['CSS', 'Django', 'Git', 'HTML', 'Python']

Когда я определяю "results" : entries с помощью "results: util.list_entries(), кажется, что это работает. Почему-то структура списка теряется, когда я сначала переопределяю его как 'entries'. Я не понимаю, почему, поэтому любые подсказки будут приняты с благодарностью. Спасибо!

Вернуться на верх