4

私はこれをいくつかの方法で試しました。ドキュメントによる、私は自分のアプリのiniでこれを実行しました。

[app:myapp]
#...
jinja2.filters =
    islist = myapp.machines.islist

私の機能は単純です:

def islist(item):
    return isinstance(item, list)

islist関数への点線のパスを間違えると、アプリがエラーをスローするため、iniファイルのフィルター設定行が読み取られていることがわかります。

ただし、テンプレートで関数を使用しようとするとislist、テンプレートが関数を見つけることができません。

{% if islist([]) %}a list{% else %}not a list{% endif %}

この結果:

UndefinedError: 'islist' is undefined

私は何が間違っているのですか?どんな助けでも素晴らしいでしょう。

4

1 に答える 1

5

フィルタは名前空間の関数として公開されるのではなく、パイプを介してのみ呼び出されると思います。たとえば{{ foo | some_filter }}

于 2012-08-15T04:30:48.147 に答える