2009-07-27 13 views
4

私はDjangoで動的なWebサイトを作って、ユーザーがそのWebサイトが基づいているテンプレートを変更できるようにしています....新しいユーザーのために、彼らは好きなテンプレートを選択する必要がありますその後、これは将来の参照のためにクッキーに保存されます。私はしかし、これを行う方法を知りません....任意のアイデア。Djangoの動的テンプレート

+2

代替テンプレートディレクトリは、推奨されているソリューションですか?同じテンプレートを維持し、テンプレート内で参照されているCSSリンクをユーザーの好みに基づいて単純に交換する方がずっと簡単です。これはレイアウトの大幅な変更を可能にしますが、テンプレートディレクトリのスワップが必要になることを私が認識していないユースケースがあります... – shawnr

答えて

6

テンプレートは、サーバー上のディレクトリにあるテキストファイルです。

メニューはディレクトリのリストです。

ロードする特定のテンプレートの名前は、各ビュー機能のrender_to_responseコールで指定します。

非常にシンプルでエレガントです。

テンプレート「スワップ」を行う必要はありません。テンプレート検索パスに必要なすべてのテンプレートを置くことができます。すべてのユーザーがいつでもすべてを利用できます。あなたはdirectory_name/template_nameを提供するだけです。すべてあなたのために処理されます。

明示的なCookieを使用しないでください。 Djangoはすでにあなたのためにこれを行います。 Django Bookのchapter 12を参照してください。

Profiles extensionを使用して、選択したテンプレートディレクトリ名をユーザーのプロファイルに配置します。

2

ユーザがテンプレートを選択したときに、テンプレート名/何らかの別名をクッキーに保存します。ユーザーがページを再びロードすると、ビュー機能で、クッキー内のテンプレート識別子が確認されます。識別子が存在する場合は、実際のテンプレートパスを取得し、render_to_response関数に渡します。

関連する問題