博客摘录在Django中

时间:2011-10-25 19:18:13

标签: python django blogs

我正在Django中构建一个博客应用程序,当我显示所有博客时,我想在每个条目中显示一个小博客摘录。谁能告诉我怎么办?

  

这样做的一种方法是创建一个额外的字段并存储固定数量的单词   每篇博客文章,比方说20个单词。但那将是存储冗余信息   在数据库中。有没有更好的方法呢?

3 个答案:

答案 0 :(得分:14)

我建议您使用truncatewords模板过滤器。

模板示例:

<ul>
{% for blogpost in blogposts %}
    <li><b>{{blogpost.title}}</b>: {{blogpost.content|truncatewords:10}}</li>
{% endfor %}
</ul>

如果博客内容存储为HTML,请使用truncatewords_html确保在截断点后关闭打开的代码(或与striptags结合使用以删除html代码)。

如果要截断字符(而非单词),可以使用slice

{{blogpost.content|slice:":10"}}

(输出前10个字符)。

如果内容存储为HTML,请与striptags结合使用以避免打开代码问题:{{blogpost.content|striptags|slice:":10"}}

答案 1 :(得分:2)

在Django 1.4及更高版本中,有一个truncatechars过滤器会将字符串截断为特定长度并使用...终止它。它实际上将其截断为特定长度减去3,最后3个字符变为...

答案 2 :(得分:1)

有点相关......

我刚才提供了这个问题的答案:Django strip_tags template filter add space可以帮助其他人制作包含HTML标签和&lt; p&gt;中短片内容的摘录。标签。

帮助转换..

"<p>This is a paragraph.</p><p>This is another paragraph.</p>"

到此..

'This is a paragraph. This is another paragraph.'

而不是这个..

'This is a paragraph.This is another paragraph.'