Как получить доступ к данным из словаря в шаблоне 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")
Вернуться на верх