Django 不评估模板变量
Django isn't evaluating template variables
当我检查页面时,我看到: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 to the {% 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 %}
当我检查页面时,我看到: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 to the {% 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 %}