- 使用方法:
{% 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十分有用。