Django не оценивает переменные шаблона

Когда я осматриваю страницу, я вижу: post="{% url daySlots %}" Но я ожидаю увидеть, что это будет оценено: post="/daySlots/" Он также игнорирует другие переменные, html показывает имя переменной как: {{ duration }} вместо значения 1.5, которое я ожидаю.

в моем views.py код html генерируется в функции типа:

html_cal = Calendar(today.year, today.month, day_colors)

context = {
        "html_cal": mark_safe(html_cal)
}

response = render(request, "pages/book.html", context)

book.html выглядит как

{% block content %}
  <div class="row">
    {{ html_cal }}
  </div>
{% endblock content %}

В функции "Календарь" также есть форматированный текст, например: td = f"post=\"{{% url daySlots %}}\"

Есть идеи, как заставить Django распознавать переменные в html?

Вы можете передать скомпилированный Template в тег {% include %}, таким образом вы можете генерировать фрагменты шаблона, подобные вашему, и отображать их в другом шаблоне с текущим контекстом.

from django.template import Template


html_cal = Calendar(today.year, today.month, day_colors)
context = {
    "html_cal": Template(html_cal)
}
response = render(request, "pages/book.html", context)

Ваш шаблон

{% block content %}
  <div class="row">
    {% include html_cal %}
  </div>
{% endblock content %}
Вернуться на верх