カスタムテンプレートフィルタから現在のUser
(テンプレートのコンテキストではuser
)にアクセスできますか?カスタムDjangoフィルタはrequest.userにアクセスできますか?
明らかに私は引数としてユーザを渡すことができますが、現在のユーザを取得することができれば、より便利になります。
カスタムテンプレートフィルタから現在のUser
(テンプレートのコンテキストではuser
)にアクセスできますか?カスタムDjangoフィルタはrequest.userにアクセスできますか?
明らかに私は引数としてユーザを渡すことができますが、現在のユーザを取得することができれば、より便利になります。
Djangoフィルタには、呼び出されたコンテキストへの特別なアクセス権が与えられていません。これは単なる古い関数です。
関数内で使用したいものを渡す必要があります。
https://docs.djangoproject.com/en/dev/howto/custom-template-tags/
ここに私の答えを参照してください:
がhttps://stackoverflow.com/a/28098279/201945
しかし、短期では、あなたがたときにコールスタックからそれを抽出することにより、カスタムフィルタの中からcontext
にアクセスすることができ、かつ唯一のレンダリング中にフィルタが呼び出されます。
これは間違いなく、不安定な解決策です。買い手責任負担。
悲しい。私はいつもミドルウェアやテンプレートコンテキストプロセッサを使ってスレッドをローカルに設定することができると思うが、... yuck。 – dcrosta
最初はPITAと感じますが、テンプレートをタグに置き換えるのは簡単です。@ register.simple_tag(takes_context = True) ' –