我想从Django模板中的字典设置一些变量。我访问字典项目和值,但是当我尝试从中设置一些值时,它不起作用
这有效:
{% for key, value in v.items %}
{% if key == 'title' %}<tr>{{ value }}</tr>{% endif%}
{% if key == 'name' %}<tr>{{ value }}</tr>{% endif%}
{% endfor %}
这不起作用:
{% for key, value in v.items %}
{% if key == 'title' %}{% with title as value %}{%$ endwith %}{%
endif%}
{% if key == 'name' %}{% with name as value %}{%$ endwith %}{%
endif%}
{% endfor%}
<tr>{{ title }}</tr><tr>{{ name }}</tr>
我想从dict值在Django模板内设置VAR!
答案 0 :(得分:0)
with
用于定义本地上下文,而不是“设置变量”。因此,正如Pankaj所说,除非您的变量在{% with ... %}{% endwith %}
请注意,它应该是with existing_var as new_var_name
,而不是相反。您也不需要$
来关闭标签。
因此,这将打印出变量(不完全符合您的要求,但会显示出来):
{% for key, value in v.items %}
{% if key == 'title' %}{% with value as title %}{{ title }}{% endwith %}{%
endif%}
{% if key == 'name' %}{% with value as name %}{{ name }}{% endwith %}{%
endif%}
{% endfor%}
但是,您不需要执行此操作(仅更改变量名是没有意义的)。如果v
是字典,为什么不这样做:
<tr>{{ v.title }}</tr><tr>{{ v.name }}</tr>
通常,您实际上不应该真正尝试在Django模板中设置变量。如果您需要提取数据/执行转换,则可能应该在视图中或使用模板标签进行。
答案 1 :(得分:0)
@geekfish的解决方案:
{% for key, value in v.items %}
<tr>{{ v.title }}</tr><tr>{{ v.name }}</tr>
{% endfor%}
;)