答えて
独自のフィルタを作成することをお勧めします。 truncatewords_htmlのソースコードを取得し、フィルタのテンプレートとして使用できます。あなたが望むものを得るためには、いくつかの変更が必要です。テンプレートを登録し、それを使用したいページにロードするだけで良いことを確認する必要があります。
は、あなたがメソッドをコピーして、ちょうどこれにコードを変更することができるはずです詳細 https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
https://code.djangoproject.com/browser/django/trunk/django/template/defaultfilters.py#L288
ために、このページを参照してください。
return Truncator(value).words(length, html=True, truncate=' see more')
あなたはより多くのコードを取るのリンク、「より多くのを見る」ようにしたいです。私は 'see more'のリンクである別のパラメータを受け入れるようにフィルタを変更します。
その後の代わりに、ちょうど持つあなたがHTMLリンクを通過する切捨てに渡された「もっと見ます」。
注意する必要があります上のサンプルコードはDjangoの最新の開発版を参照していると私は信じています。 'django.utils.text'ライブラリに' Truncator'クラスがまだないので、1.3.1では動作しません。 –
良い点、私はまだ開発中の1.4のコードであるトランクからコードを得ました。 –
私は二重チェックをしなければなりませんでした - 私は古いコードを実行していました。 –
カスタムリンクを渡す場合は、このようにすることができます。
は、カスタムフィルタを定義します。
from django import template
from django.utils.safestring import mark_safe
from django.utils.text import truncate_html_words
register = template.Library()
@register.filter
def truncatewords_html_with_link(value, arg):
"""
Truncates HTML after a certain number of words and concatenates a link
Argument: String - Number of words to truncate after and the link,
separated by a comma
"""
arg_list = arg.split(',')
try:
length = int(arg_list[0])
except ValueError:
return value
return mark_safe(truncate_html_words(value, length, arg_list[1]))
は、あなたのテンプレートからそれを呼び出します。
{{ text|truncatewords_html_with_link:"5, <a class=\"read-more\" href=\"/your_url/\">Read More</a>" }}
私はあなたがまとめたものが好きですが、URLをフィルタに渡してフィルタにリンクを張り、HTML、ちょうどアイデアを追加させる方が簡単かもしれません。 –
ええ、私はあなたが正しいと思います。完全なHTMLリンクを渡そうとするのはあまりにも面倒です。 「もっと読む」リンクをカスタマイズしたいのであれば、それだけです。 –
ええ、私はあなたが2番目のパラメータとして渡すことができるより多くのリンクをカスタマイズしたいと思っていて、 –
ジャンゴ1.8内の関連するコードを読み取ります
truncate = pgettext(
'String to return when truncating text',
'%(truncated_text)s...')
ロケールを使用している場合と、翻訳ファイルの場合は、*.po
ファイルに次のファイルを入れます:
msgid "String to return when truncating text"
msgstr "Short version: %(truncated_text)s <a class='see-more-link'>see more</a>"
リンクをクリックしたときに何が起こるかに応じて、このように追加することはあまり役に立ちません。別のプレースホルダを使用することもできますが、このメッセージ文字列が使用されている間はプレースホルダを置き換える必要があります。
- 1. HTML/CSS「応答の切り捨て」
- 2. PythonでHTMLを切り捨てる
- 3. 配列のソートと切り捨て/切り捨て
- 4. 切り捨てDrRacket
- 5. Utf7Encodingテキストの切り捨て
- 6. のChartAreaタイトル切り捨て
- 7. SBS2008のデータ切り捨て
- 8. 切り捨てのDateTime
- 9. Drupalのブレッドクラム切り捨て
- 10. ブートストラップメニューの切り捨て
- 11. UIButtonタイトルテキストの切り捨て
- 12. 切り捨てのMoodleユーザテーブル
- 13. 切り捨て用のBash
- 14. テキストオーバーフローCSSの切り捨て
- 15. DjangoのURLは(ダイナミックナビゲーション)それを切り捨て
- 16. Djangoはブログの要約を切り捨てます
- 17. 切り上げと切り捨てR
- 18. html形式の文字列を切り捨てます。
- 19. TextViewの内容をHTMLから切り捨てる
- 20. sqlite3は私のテキスト列を切り捨てる/切り捨てる
- 21. com.mysql.jdbc.MysqlDataTruncation:データ切り捨て:正しくないDOUBLE値の切り捨て: 'q'
- 22. PLSQL:切り捨てによる数字の変換と切り捨て
- 23. NSMenuItem:切り捨てとsetLineBreakMode
- 24. MySQLクエリログ切り捨てクエリ
- 25. 切り捨てと挿入
- 26. 整数に切り捨て
- 27. UINavigationItemタイトル切り捨て
- 28. トランザクションと切り捨てデータベースクリーナー
- 29. AS3テキストフィールド、切り捨て
- 30. 切り捨て/コンパクトPDF417マトリックス
[コンテンツが切り捨てられていることを確認する方法](http://stackoverflow.com/questions/1802625/how-to-find-that-the-content-is-truncated) –