2012-04-23 6 views
0

すべてのユーザーが自分の「ホームページ」を持つことができるプロジェクトを作成します。だから私は各ユーザーのテンプレートを設定し、彼のホームページのURLに表示することができるようにしたい。テンプレートの名前をユーザープロファイルに保存して、テンプレートローダーに渡すだけですか、これを行うにはより安全な/よりプラグ可能な方法がありますか?DjangoでURLでテンプレートを定義する方法は?

+0

テンプレートの違いは何ですか?それは変更可能ですか?誰によって? – okm

+0

違いは、ほとんどが光学系だけです。さまざまなCSS、おそらく異なる画像サイズと異なるナビゲーションなど。私はユーザーがドロップダウンメニューでテンプレートの間で選択できるようにしたい。しかし、テンプレートの数を非常に簡単に拡張できることが私にとって重要です。 – JasonTS

+0

タイトルを「ユーザーに応じて別のテンプレートを使用する方法」などに変更できますか?それは少し明確です。 –

答えて

1

あなたは自分のお気に入りのテンプレートを拾い、背景画像やスタイルを表示するなどの設定を束ねることができますか?そうであれば、あなたのソリューションは問題ありません。実際には、ユーザはテンプレートの使用を完全に制御する代わりに、提供された(拡張可能な)テンプレートの中から選択することができます。
さらに、各ユーザーにのみ使用される環境設定の場合。列ごとに保存するのではなく、jsonfieldやpicklefieldなどのシリアル化されたフィールドに保存することをお勧めします。私はそのようなフィールドの編集を容易にするためのアプリを書いています。

1

ユーザープロファイルにテンプレート名を保存しても問題ありません。あなたが言うように、テンプレートレンダリングメソッドに渡すことができます。

しかし、1つのことに気をつけてください。ユーザーは手動でテンプレート名を入力するべきではありません。それはセキュリティ上の理由から選択肢になるはずです。 https://docs.djangoproject.com/en/1.4/ref/models/fields/#choicesの最後に、テンプレートの選択肢のリストを動的にすることができます。

関連する問題