2012-04-28 19 views

答えて

16

あなたは

+12

ここに来る人は、もっと簡単なIbatteauのソリューションを見てください。ちょうどテンプレート自体の中で.stripを使うだけです(新しいフィルタを登録する必要はありません)。 – bryn

+2

'{{var.example.strip}}'を使うのは本当に簡単ですが、ここではこの解決方法も使用しています。例えば、 '{%filter trim%} {%someothertag%} {%endfilter%}'を実行することができます。これは他にはあり得ません。 – jlh

77

Django templates

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>タグを削除残りのコンテンツをレンダリングします。これは空白を取り除いたものです。

+4

それは文書化されているのか、それとも非公式なトリックですか? – Medorator

+3

これはDjangoの関数ではなく、Pythonの関数です。ここには、https://docs.python.org/2/library/stdtypes.html#str.stripが記載されています。 Djangoテンプレート変数のドキュメント:https://docs.djangoproject.com/en/dev/ref/templates/language/#variables – maciek

+1

コメント - 'removetags'フィルタはdjango 1.10から削除されていますので、注意してください – Jerzyk