- 使用方法:
{% with comments.count as total_comments %}
<h2>
{{ total_comments }}
</h2>
{% endwith %}
{% with %}标签可将某个值赋予可用的新变量中,直至遇到{% endwith %}标签。
但是,不能在with标签中再使用自定义模板标签
如下:
# 其中get_most_commented_posts是自定义的模板标签
{% with get_most_commented_posts as most_commented_posts %}
<ul>
{% for post in most_commented_posts %}
<li>
<a href="{{ post.get_absolute_url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
{% endwith %}
# 结果发现 无法遍历数据
正确的用法时:
# 使用as参数
{% get_most_commented_posts as most_commented_posts %}
<ul>
{% for post in most_commented_posts %}
<li>
<a href="{{ post.get_absolute_url }}">{{ post.title }}</a>
</li>
{% endfor %}
</ul>
下面介绍一下with参数:
{% include 'pagination.html' with page=posts %}
作用是将posts赋值给page变量,并将page变量传递给模板pagination.html
总结:标签中不能嵌套其他标签,可使用相关参数,如as参数,with参数等
注:使用{% with %}模板标签对于防止多次计算QuerySet十分有用。