Django的truncatechars过滤器切断了斜体标签中的文本,并使页面上的所有内容都显示为斜体

时间:2018-04-15 23:21:27

标签: python django django-templates

我在Django有一个博客,首页必须将每篇文章的内容都截断。我用了{{value | truncatechars:600 |对于那些想要阅读其余内容的人来说,切断文本并在其后面有“阅读更多”按钮。

{% for display in posts %}
<article>

    <div class="post-info">
        <h2><a href="{% url 'single' display.slug %}">{{ display.title }}</a></h2>
        <h3><strong>{{ display.subtitle }}</strong></h3>
        <h4>published {{ display.date_published }}</h4>
        <h4>by {{ display.author }}</h4>
    </div>

    {% if display.image %}
        <img class="post-image" src="{{ display.image.url }}">
    {% endif %}     

    <div class="body">
    {{ display.body | truncatechars:600 | safe }}<a class="btn btn-xs btn-primary" href="{% url 'single' display.slug %}">read more</a>
    </div>

</article>
{% endfor %}

问题在于我发了一篇文章,它截断了斜体em标签中间的文本,因此它使页面上的其他内容都显示为斜体。

是否还有其他方法可以截断文本,即使在粗体和斜体部分的中间,也不会遇到这种困境?

1 个答案:

答案 0 :(得分:0)

使用适用于此类用例的truncatechars_html

  

truncatechars类似,但它知道HTML标记。在截断之后立即关闭在字符串中打开但未在截断点之前关闭的任何标记。