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'. Я не понимаю, почему, поэтому любые подсказки будут приняты с благодарностью. Спасибо!