私はGAE/Pythonの初心者です。
カスタマーフィルター関数を呼び出すjinja2テンプレートがあります。
呼び出しは次のようになります。
{% if constant-parameter|AccessOK %}
<li><a href="/tokens-step1">Tokens</a></li>
{% endif %}
レンダリングテンプレートと呼ばれるページでフィルターを定義しました。
TEMPLATE_DIR = os.path.join(os.path.dirname(__file__), 'templates')
jinja_environment = \
jinja2.Environment(autoescape=True, loader=jinja2.FileSystemLoader(TEMPLATE_DIR))
jinja_environment.filters['AccessOK'] = AccessOK
これを実行すると、アプリエンジンを起動した後、最初にWebサイトにアクセスしたときにフィルターが呼び出されます(ログエントリがあります)。
他のページにアクセスしたり、ページを更新したりしても、フィルターが再度呼び出されることはありません。
すべてのページビューで実行するフィルターが必要です。
これは、パラメーターが定数であり、変数に変更すると毎回実行されるためだと言われています。私の場合、定数を渡す必要があるので、2つのパラメーターを渡してみました(これにより、変数= currentuserであり、システムをだまして毎回フィルターを実行させるためだけに存在します)。
システムが2番目のパラメーターを認識していないことを示すエラーが表示されます。
顧客フィルターが毎回呼び出されるようにする方法や、2つのパラメーターを渡す方法の例を教えてもらえますか?