django 内建标签和过滤器参考
下面的标签和过滤器参考就是为那些没有 admin 站点的可用的人准备的.由于 Django 是高度可定制的,你的 admin 里的关于标签和过滤器的参考可以认为是最可信的. 内建标签参考
block 定义一个能被子模板覆盖的 块. 参阅 模板继承 了解更多信息
comment 注释.模板引擎会忽略掉 {% comment %} 和 {% endcomment %} 之间的所有内容. cycle 在循环时轮流使用给定的字符串列表中的值. 在一个循环中, 在循环过程中的每次循环里轮流使用给定的字符串列表元素: {% for o in some_list %} ...
{% endfor %} 在循环之外, 在你第一次调用它时给这些字符串值定义一个不重复的名字,然后在循环中使用这个名字: ...
...
...
你可以使用任意数量的逗号分隔的值.只有一点请你注意,不要在值与值之间放任何空隔--仅仅只有一个逗号即可.
debug 输出完整的调试信息,包括当前的上下文及导入的模块信息. extends 当前模板 扩展 父模板的一个信号(标记. 这个标签有两种使用方式: {% extends "base.html" %} (带双引号 使用 "base" 作为要扩展的父模板的名字.或者 {%
extends variable %} 使用 variable 的值作为要扩展的父模板的名字. 参阅 模板继承 以了解更多信息. filter 用来过滤变量的值. 允许多级过滤, 并且他们可以带有参数运行 -- just like in variable syntax. 示例: {% filter escape|lower %} 文本将被 HTML-转义, 并且全部转化为小写 {% end过滤器 %} firstof 输出传递给它的第一个不是 False 的变量值. 如果所有的变量都是 False 那就不输出任何东西. 示例: {% firstof var1 var2 var3 %} 它等价于: {% if var1 %}
{{ var1 }} {% else %}{% if var2 %}
{{ var2 }} {% else %}{% if var3 %}
{{ var3 }} {% endif %}{% endif %}{% endif %} for
循环. 比如要显示一个 athlete_list 中的全部运动员: {% for athlete in athlete_list %} {{ athlete.name }} {% endfor %} 通过使用 {% for obj in list reversed %} 你也可以实现反序循环. 在循环过程中 for 循环会设置以下的一系列变量:
Variable forloop.counter forloop.counter0 forloop.revcounter forloop.revcounter0 forloop.first Description 当前循环次数 (1-indexed 当前循环次数
(0-indexed 倒序循环时当前循环次数(1-indexed 倒序循环时当前循环次数(0-indexed 如果当前循环是循环过程的第一次则为True 如果当前循环是循环过程的最后一次则为True 对嵌套循环, 当前循环之上的循环
forloop.last forloop.parentloop
if {% if %} 标签对一个变量求值, 若这个变量为 "true" , 就输出 if 内容块: {% if athlete_list %} Number of athletes: {{ athlete_list|length }} {% else %} No athletes. {% endif %} 在上例中, 如果 athlete_list 非空, 运动员人数就会通过 {{ athlete_list|length }} 变
量显示出来. 就象你刚刚看到的, if 标签可以带一个 {% else %} 子句,用来当 if 测试失败后输出相应的内容块. if``标签可以使用 ``and,``or`` 或 not 来测试一系列变量或否定一个给定的变量: {% if athlete_list and coach_list %} Both athletes and coaches are available. {% endif %}
{% if not athlete_list %} There are no athletes. {% endif %}
{% if athlete_list or coach_list %} There are some athletes or some coaches. {% endif %}
{% if not athlete_list or coach_list %} There are no athletes or there are some coaches (OK, so writing English translations of boolean logic sounds