generic viewのextra_context (2)
間違っていた話。
extra_context に QuerySet渡すと静的に解決されて困ったな、という話ですがwww.lingr.com/room/django-ja/archives/2007/09/19 で指摘されているようにlambdaで囲うのが正解でした。折角なのでソースを読む。
- あたり前の話として dictionary は静的に値が決まる。つまり値で関数を呼べばその結果が入る。
- じゃあなんでlambdaならいいんだよという話は django/views/generic/list_datail.py で extra_context の値を RequestContextに渡すときに callable な物はその場で呼び出した値を渡すから。
- 以上が結論。あ、でも関数を渡せたとしても関数自体は静的に決まるから…、これはまた考えよう。
ドキュメントを斜め読みしないでもうちょっとソースを読もう…。

Debian QA
Facebook (taniguchi.takaki)
Twitter (@takaki_t)