2011-07-08 19 views
1

私は、典型的なDjangoのウェブサイトの構造について簡単な質問があります。私はいくつかの "Django-powered"ページを他の典型的な静的ページに混ぜてサイトを再構成しなければなりません。Djangoでウェブサイトを構築するには?

私はこれらのテンプレートを使用していくつかのテンプレートと多くのページを用意したいと思います。

私の質問は:

ページごとに異なるコンテンツを提供するための最良の方法は何ですか? 私が今考えているのは、同じテンプレートを使用して、ビュー内のコンテンツを変更することで、自分のURLのconfに異なるページがあるということです。しかし、ビュー内でコンテンツを「ハードコード」するのはとても自然ではないと思います。

テンプレートにコンテンツ領域を定義する方法はありますか?たとえば、管理パネルでコンテンツ領域を編集する方法はありますか?

もっと良い方法があるはずです。

ありがとうございました!

編集 多分にflatpagesは私の仕事に役立つかもしれません。しかし、テンプレートの特定の部分に結びついた "コンテンツ領域"を追加する方法はありますか?私はメインコンテンツエリアだけを細かくすることができます。

答えて

0

あなたは汎用ビューを使用することができ、私は心からことをお勧めします。彼らは素晴らしいです。 django docs for generic viewsをチェックしてください。しかし、異なるテンプレートを必要とする異なるページについては、それはウェブサイトの仕組みです。

Djangoは「ファイルライト」ではありません。小さなファイルをたくさん組み合わせて使用​​します。ビューコントローラでHTMLをハードコーディングするのは嫌です。これは一般的に悪いことです。ビューごとにテンプレートを作成しますが、実際にはビューの数はいくつですか?大規模なアプリケーションであっても、ビルトインまたはカスタムメイドの汎用ビューでは処理できないビューの数はかなり少なくなります。

3

あなたの "コンテンツ領域"はdjangoのテンプレートブロックとどう違うのですか?

base.html 
{% block overridable %}Default content{% endblock overridable %} 

そして、あなたのテンプレートで、あなたはこのようにそれを拡張します:あなたは、あなたのレイアウトファイルに次のようなものを定義することができます

view.html 
{% extends "base.html" %} 
{% block overridable %} Overrided by view {% endblock overridable %} 
+0

このように、私はそれぞれのページごとにテンプレートを用意しています。いくつかの変数の中で定義されたコンテンツを持つ、多くのページで1つのテンプレートを使用したい、あるいは何がわからないのですか? – daliz

+0

あなたがDrupalとその "ブロック"を知っているなら、私の言いたいことを理解することができます。 – daliz

+0

これがレイアウトの目的です。そこにあなたの "変数"を定義し、それらをテンプレートで上書きします。 – Senthess

関連する問題