アプリのプロファイリングを開始したところ、完了するまでに他のコードよりも大幅に時間がかかるコードがあることがわかりました。ビューでは、データベースからデータを取得し、少し変換しています。テンプレートには、この変換されたデータを取得して HTML に変換するフィルターがあります。
このコンポーネントはそれほど頻繁に変更されないため、キャッシングを活用できることに気付きましたが、それを行う最善の方法は何だろうと思っています。データベース呼び出し/変換の両方の結果をキャッシュできますが、テンプレート フラグメントもキャッシュできます。最高の効果を得るために 2 つのものをキャッシュする必要があるのは奇妙に思えるので、データを 1 つの場所にキャッシュするだけでよいように、コードを別の構造にする必要があると思います。
私が持っていた 1 つのアイデアは、テンプレート フィルター関数内からデータベース呼び出しを行うことですが、モデル コードをテンプレート フィルターの外に保持しようとしています。
この種の問題を処理する最善の方法は何ですか?