3

私は基本的な3列のデザインのDjangoサイトで作業しています。左の列のナビゲーション、中央の列のコンテンツ、および右の列のURL固有のコンテンツブロック。

私の質問は、右側の列のURL固有のコンテンツブロックを制御するための最良の方法についてです。

Flatpagesアプリに沿って、URLが事前に決定されたパターン(おそらく正規表現?)に一致する場合にコンテンツをテンプレートコンテキストで利用できるようにする何かを考えています。

そのようなアプリがすでに存在するかどうか誰かが知っていますか?

そうでない場合、私はそれを実装するための最良の方法についていくつかのアドバイスを探しています。特に、現在のURLへのパターンのマッチングに関連して。この用途のためにDjangoURLディスパッチャーの一部を再利用する良い方法はありますか?

4

3 に答える 3

1

このような場合、私は個人的にDjangoCMSを使用します。それはステロイドのフラットページのようなものです。

Django CMSには、ページ、テンプレート、プラグインの概念があります。各ページには、関連付けられたテンプレートがあります。テンプレートには、さまざまなプラグインを挿入できるプレースホルダーがあります。プラグインは、動的なモデルベースのコンテンツを持つことができるミニアプリケーションのようなものです。

于 2010-04-24T19:49:12.000 に答える
1

Django CMSは良い提案です、それはあなたがどれだけ深く行きたいかによります。これが必要なさまざまな種類の動的コンテンツの始まりにすぎない場合は、確実にそのように進める必要があります。

単純な1回限りの解決策は、次のようになります。

ビューを記述し、そこに表示されるものを定義するいくつかの変数をURLの最後に追加する必要があります。どれだけ凝ったものにする必要があるかに応じて、単純なモデルを作成し、ビューをモデルキーにマップするだけで済みます。

www.example.com/content/sidecontent/jokes/

したがって、「ジョーク」が可変サイドコンテンツのブロック(サイドモデルインスタンスの多くの1つ)である場合、そのurls.pyエントリは次のようになります。

(r'^content/sidecontent/(?P<side>)/$,sides.views.showsides),

そして、あなたのサイドアプリであなたは

def showsides(request, side):
    Sides.objects.get(pk=side)

等...

于 2010-04-24T20:37:09.043 に答える
0

Django-CMSは興味深い提案ですが、特に要求したことを実行するプロジェクトがかなりあります。URLに基​​づいてコンテンツのブロックをレンダリングします。私が知っている主なものはdjango-flatblocksです。

于 2010-04-25T08:08:15.903 に答える