我有一个从数据库中提取HTML内容的系统,如下所示:
<p>This is some text</p>
<p>More text</p>
<p>Third Paragraph</p>
当显示它时,它会显示博客文章内容的简短摘要,但是现在在显示文本时,我已将字符数限制设置为200这样的数字,这将导致摘要如下:
<p>This is some text</p>
<p>More text</
在任何地方切断内容,可能会破坏网页的其余部分。
有没有办法在python中关闭所有打开的标签或只获得一定数量的顶级块?例如,2个块将是前两个<p></p>
标签。在显示文章的简短预览时,我看到word press具有此功能。
答案 0 :(得分:5)
如果您需要在模板中执行此操作,请查看truncatewords-html:https://docs.djangoproject.com/en/dev/ref/templates/builtins/#truncatewords-html
或者在其他地方,您可以使用适用于大多数用例的基础django.utils.text.Truncator
类(https://github.com/django/django/blob/1.7/django/utils/text.py#L65),如果您需要某些自定义行为,请将该代码用作自己实现它的参考。
<强>更新强>:
如果你需要直接使用django.utils.text.Truncator
,这就是你实例化并调用words()
方法的方法(这正是truncatewords-html过滤器的作用)
Truncator(value).words(length, html=True, truncate=' ...')