私はDjangoでブログアプリケーションを構築しています。私はすべてのブログを表示するときに、それぞれのエントリで小さなブログ抜粋を表示したいと思います。どのように私はそれを行うことができます誰も教えてくれる?Djangoのブログ抜粋
これを行う1つの方法は、 各ブログエントリの固定数の単語を保存することです.20語としましょう。しかし、それは冗長な情報 をデータベースに格納することになります。それを行う良い方法はありますか?
私はDjangoでブログアプリケーションを構築しています。私はすべてのブログを表示するときに、それぞれのエントリで小さなブログ抜粋を表示したいと思います。どのように私はそれを行うことができます誰も教えてくれる?Djangoのブログ抜粋
これを行う1つの方法は、 各ブログエントリの固定数の単語を保存することです.20語としましょう。しかし、それは冗長な情報 をデータベースに格納することになります。それを行う良い方法はありますか?
truncatewordsテンプレートフィルタを使用することをお勧めします。
テンプレートの例:
<ul>
{% for blogpost in blogposts %}
<li><b>{{blogpost.title}}</b>: {{blogpost.content|truncatewords:10}}</li>
{% endfor %}
</ul>
ブログのコンテンツはオープンタグはトランケーション・ポイントの後に閉じていることを確認してください(またはHTMLタグを取り除くためにstriptags
と結合)するtruncatewords_html
を使用して、HTMLとして保存されている場合。
あなたは文字(ない言葉)に切り捨てしたい場合は、slice
を使用することができます。
{{blogpost.content|slice:":10"}}
(出力最初の10文字)。コンテンツがHTMLとして保存されている場合
、オープンタグの問題を回避するためにstriptags
と結合:{{blogpost.content|striptags|slice:":10"}}
ジャンゴ1.4以降では、特定の長さの文字列を切り捨て、...
でそれを終了しますtruncatecharsフィルタがあります。それは実際には特定の長さから3を切り捨て、最後の3文字は...
になります。
やや関連..
私はこの質問への答えを提供:Django strip_tags template filter add space <のp>タグでHTMLタグや短いコンテンツを含む抜粋を行う際に他の人を助けるかもしれません。
これに代えて、この..
"<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.'
あなたは抜粋が編集可能かどうかになりたい場合に応じて、正解を決定する。単純に抜粋(自己)でそれを行うことができ、特定の文字列の長さに細断された本文を返し、もしあればhtmlを消毒します。 –