Как получить доступ к данным из словаря в шаблоне HTML?
Когда я пытаюсь использовать данные из словаря, я получаю ошибку:
'tuple' object has no attribute 'get'
Это происходит, когда я нажимаю на ссылку, которая должна привести меня на страницу записи. Запись представляет собой файл Markdown, который я получаю из util.get_entry(title)
.
Как получить доступ к данным из словаря в шаблоне HTML (entry.html
)? Нужно ли мне преобразовывать Markdown в HTML?
entry.html:
{% extends "encyclopedia/layout.html" %}
<!-- {% load static %} -->
{% block title %}
{{ name }}
{% endblock %}
{% block style %}{% endblock %}
{% block body %}
<div class="left">{{ entry }}</div>
<div class="right">
<a href="{% url 'edit' %}">
<button class="edit">Edit</button>
</a>
</div>
{% endblock %}
views.py:
from . import util
def entry(request, name):
if util.get_entry(name) is not None:
return render(request, 'encyclopedia/entry.html'), {
'entry': util.get_entry(name),
'name': name
}
else:
return render(request, "encyclopedia/404.html")
urls.py:
path('<str:name>', views.entry, name='entry'),
Вы не передаете dict в параметрах. Пожалуйста, используйте это
from . import util
def entry(request, name):
if util.get_entry(name) is not None:
context ={
'entry': util.get_entry(name),
'name': name
}
return render(request, 'encyclopedia/entry.html',context)
else:
return render(request, "encyclopedia/404.html")