AI智能
改变未来

django的with标签

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

赞(0) 打赏
未经允许不得转载:爱站程序员基地 » django的with标签