0

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

4

2 に答える 2

1

テンプレート名をユーザー プロファイルに保存しても問題ありません。おっしゃる通り、テンプレートの render メソッドに渡すだけです。

ただし、注意すべき点が 1 つあります。ユーザーがテンプレート名を手で入力できないようにする必要があります。セキュリティ上の理由から、選択フィールドであるべきだと思います。https://docs.djangoproject.com/en/1.4/ref/models/fields/#choicesの最後を参照してください。テンプレートの選択肢のリストを動的にすることができます。

于 2012-04-23T13:14:05.237 に答える
1

ユーザーがお気に入りのテンプレートを選択して、背景画像や表示スタイルなどの設定を設定できるようにしたいと思いませんか? もしそうなら、あなたの解決策は問題ありません。実際には、ユーザーが使用するテンプレートを完全に制御できるようにするのではなく、提供された (および拡張可能な) テンプレートのセットからユーザーが選択できるようにしています。
さらに、各ユーザーにのみ使用されるプリファレンス設定用。列ごとに保存するのではなく、jsonfield や picklefield などのシリアル化されたフィールドに保存することをお勧めします。そのようなフィールドの編集を容易にするアプリを書いています。

于 2012-04-23T14:42:09.037 に答える