2016-11-09 4 views
1

string_if_invalidは私のdjangoテンプレート設定で 'INVALID'に設定されています。 そして、このようになりますいくつかのテンプレートがあります:結果は'INVALID'のように見えるレンダリング後Django string_if_invalidとdefault

{{ some_nonexisting_value|default:'Default value' }} 

が。したがって、デフォルト値は使用されません。 string_if_invalidをテンプレートを変更せずにデフォルト値で動作させる方法はありますか?

編集: テンプレートの設定は、次のようになります。

TEMPLATES = [ 
    { 
     'BACKEND': 'django.template.backends.django.DjangoTemplates', 
     'APP_DIRS': True, 
     'DIRS': [ 
      os.path.join(BASE_DIR, 'templates'), 
     ], 
     'OPTIONS': { 
      'libraries': { 
       'utm_tags': 'kurator.templatetags.utm_tags', 
      }, 
      'string_if_invalid': 'INVALID', 
      'context_processors': [ 
       'django.template.context_processors.debug', 
       'django.template.context_processors.request', 
       'django.contrib.auth.context_processors.auth', 
       'django.contrib.messages.context_processors.messages', 
       'kurator.context_processors.static_hash', 
       'kurator.context_processors.debug', 
      ] 
     }, 
    }, 
] 
+1

テンプレートの設定を表示してください。 –

+0

編集した質問 –

答えて

3

いいえ、それは代わりに無効な文字列の提供するデフォルトを表示するdefaultフィルタを取得することはできません。 the docsstring_if_invalidオプションを使用しないことを警告すること

注:のみ、デバッグ目的のために

string_if_invalidは便利なデバッグツールですが、「開発のデフォルト」として有効にすることは悪い考えです。

管理サイトのスクリプトを含む多くのテンプレートは、存在しない変数に遭遇したときにテンプレートシステムの無音に依存します。 ''以外の値をstring_if_invalidに割り当てると、これらのテンプレートとサイトでレンダリングの問題が発生します。

通常、string_if_invalidは、特定のテンプレートの問題をデバッグするためにのみ有効にし、デバッグが完了するとクリアされます。

独自のテンプレートの場合は、変数名とデフォルト値をとり、テンプレートコンテキストから変数を取得しようとする独自のテンプレートタグを作成できると思います。しかし、これはDjango管理者を含む普通のdefaultフィルタを使用する他のテンプレートの問題を解決しません。

関連する問題