我想巧妙地切片HTML内容。
以news
为例,显示新闻列表的页面如下:
<table>
<tr><th>Title</th><th>Content</th></tr>
{% for news in newsList %}
<tr>
<td><a href="/news/{{news.id}}/">{{news.title}}</a></td>
<td>{{news.content | slice:":30" | safe}} ...</td>
</tr>
{% endfor %}
</table>
新闻的内容被切片,以便用户只能看到新闻的某些部分。但是,如果slice:":30"
的位置恰好位于HTML标记中,则会出现问题。
例如,如果news.content
的内容如下:
<p>What is Content Marketing?</p>
切片的结果为<p>What is Content Marketing?< ...
,其中标记<p>
未关闭。
切片时有没有办法保留HTML标签?
答案 0 :(得分:4)
我猜你应该使用truncatechars_html
过滤器
https://docs.djangoproject.com/en/1.9/ref/templates/builtins/#truncatechars-html