显示部分内容数据

时间:2018-06-07 06:54:42

标签: django

我有以下模板代码:

<div class="panel panel-default">
  <div class="panel-heading">
    <h3 class="panel-title">{{ article.title }}</h3>
  </div>
  <div class="panel-body">
    {{ article.content }} <!--will display the full text-->
  </div>

我打算显示内容的前200个字符,例如:

{{ article.content|length=200 }}

如何在文本上实现这样的约束。

2 个答案:

答案 0 :(得分:4)

此处有两个模板过滤器非常有用:slicetruncatechars

{{ variable | slice:":200" }}将可迭代(此处为字符串)限制为给定数字,例如:

truncatechars

{{ variable | truncatechars:"200" }}大致相同,除非字符串长于上限(此处为200),它将切入上限减去三,并添加一个ellise:

variable = "foobarqux"

对于较小的上限,为了证明差异,对于字符串{{ variable | slice:":6" }} # foobar {{ variable | truncatechars:"6" }} # foo... 我们会得到:

truncatechars

这两者因此不同:后者给出了文本提示,实际上有更多内容。当然,这取决于过滤器满足您需求的具体情况。

一个好处是你可以用slice模仿 {{ variable | truncatechars:":6" }}

{% if variable|length > 6 %}{{ variable|slice:":3" }}...{% else %}{{ variable }}{% endif %}

相当于:

truncatechars

但它当然不是最优雅的解决方案:如果你想要'level': 'DEBUG'行为,最好使用特定的过滤器。

答案 1 :(得分:3)

您可以使用truncatechars过滤器:

{{ article.content|truncatechars:200 }}