2011-07-13 4 views

答えて

4

Djangoフィルタには、呼び出されたコンテキストへの特別なアクセス権が与えられていません。これは単なる古い関数です。

関数内で使用したいものを渡す必要があります。

https://docs.djangoproject.com/en/dev/howto/custom-template-tags/

+1

悲しい。私はいつもミドルウェアやテンプレートコンテキストプロセッサを使ってスレッドをローカルに設定することができると思うが、... yuck。 – dcrosta

+2

最初はPITAと感じますが、テンプレートをタグに置き換えるのは簡単です。@ register.simple_tag(takes_context = True) ' –

0

ここに私の答えを参照してください:

https://stackoverflow.com/a/28098279/201945

しかし、短期では、あなたがたときにコールスタックからそれを抽出することにより、カスタムフィルタの中からcontextにアクセスすることができ、かつ唯一のレンダリング中にフィルタが呼び出されます。

これは間違いなく、不安定な解決策です。買い手責任負担。

関連する問題