djangoには、入力テキストの先頭または末尾の空白を切り詰めるテンプレートフィルタがありますか?先頭または末尾の空白を切り詰めるテンプレートフィルタ
のような何か:{{ var.example|trim }}
は
djangoには、入力テキストの先頭または末尾の空白を切り詰めるテンプレートフィルタがありますか?先頭または末尾の空白を切り詰めるテンプレートフィルタ
のような何か:{{ var.example|trim }}
は
あなたは
from django import template
from django.template.defaultfilters import stringfilter
register = template.Library()
@register.filter
@stringfilter
def trim(value):
return value.strip()
Documentationは、あなたが使用してメソッドやプロパティにアクセスすることを可能にするそれを自分で行うことができます ''構文:
{{ var.example.strip }}
あなたが例えば、あなたがHTMLを扱っているときに、他のフィルタを連鎖することによって、これを拡張することができます。
{{ var.example.strip|safe|removetags:"p img" }}
ここでは、まず、それが安全にできるDjangoに伝え、その後、任意の<p>
と<img>
タグを削除残りのコンテンツをレンダリングします。これは空白を取り除いたものです。
それは文書化されているのか、それとも非公式なトリックですか? – Medorator
これはDjangoの関数ではなく、Pythonの関数です。ここには、https://docs.python.org/2/library/stdtypes.html#str.stripが記載されています。 Djangoテンプレート変数のドキュメント:https://docs.djangoproject.com/en/dev/ref/templates/language/#variables – maciek
コメント - 'removetags'フィルタはdjango 1.10から削除されていますので、注意してください – Jerzyk
ここに来る人は、もっと簡単なIbatteauのソリューションを見てください。ちょうどテンプレート自体の中で.stripを使うだけです(新しいフィルタを登録する必要はありません)。 – bryn
'{{var.example.strip}}'を使うのは本当に簡単ですが、ここではこの解決方法も使用しています。例えば、 '{%filter trim%} {%someothertag%} {%endfilter%}'を実行することができます。これは他にはあり得ません。 – jlh