我正在尝试使用代码将一个 .html 文件包含进来。
这会导致错误
如果我硬编码.html文件的名称,它确实可以工作。
{% include "paintings/experiments/points/{{substance.name}}.html" %}
这会导致错误
TemplateDoesNotExist
。如果我硬编码.html文件的名称,它确实可以工作。
{% include "paintings/experiments/points/fabric.html" %}
实际上,我可以在包含的html中使用{{substance.name}}
,它确实会被替换为fabric
。但是为什么我在使用include标签时不能使用Django变量呢?
add:
过滤器,例如"paintings/experiments/points/"|add:substance.name|add:".html"
。如果您在视图中设置include_template_name = "paintings/experiments/points/%s.html" % substance.name
,然后在模板中使用{% include include_template_name %}
,您可能会发现代码更加清晰。 - Alasdairinclude
标签接受变量,您可以在模板中使用自定义模板标签创建变量,然后在include
中使用这个新创建的变量。例如:build_template_path(base, name): return base.format(name)
,在模板中使用{% build_template_path 'paintings/experiments/points/{}.html' substance.name as template_path %}
,然后使用{% include template_path %}
。 - Borut