2012-05-25 18 views
6

django-cmsは常に最上位ページを開始/リンク先ページとして使用します。私は今、foo-home-barのホームのようなナビゲーションをリンク先ページにしたいと考えています。開始ページを選択するdjango-cms

1つの方法は、/ homeに/にリダイレクトするダミーページを追加することですが、これは私にはやや粗悪なようです。もっと良い解決策はありますか?私はCMS自体のコードを変更しても構いません。

答えて

3

リダイレクトするページを作成するのではなく、最も簡単な方法は、djangoのリダイレクトジェネリックビューを使用することです。

は、冒頭でfrom django.views.generic.base import RedirectViewインポートを追加し、あなたはすべてのセットでなければなりません

url(r'^$', RedirectView.as_view(url='/home/')), 

そしてもちろん、あなたのトップレベルのurls.pyでそれを設定します。

'^$'は、ルートURLとRedirectViewリダイレクトのみをキャッチします。私はそれを自分自身で使用することについて少しはわかりませんでしたが、自分のサイトにアクセスすると、多くの主要なウェブサイトがリダイレクトを行っていました... )

1

最初のページはホームページのようですが、必要に応じて他のルートページを追加してナビゲーションを有効にするだけです。これは私がやったことです。

私たちの最初のページはテストだったし、いくつかの子ページでした。管理ページで、ページをクリックしてドラッグして子/親の順序を変更することができます。テストを自宅に変更し、子ページを別のルートページに移動しました。

また、menu/menu.htmlにテンプレートを作成して、デフォルトのメニューを上書きすることもできます。 ここにif文を追加することでオーダーを上書きすることができます。 また、のようなメニュー何か持つあなたのbase.htmlでそれをハードコーディングできます。 <ul id=menu> <li><a href="/foo/>foo></a></li> <li><a href="/">Home</a></li> {% show_menu %} <ul>

をそして、ちょうどバーとあなたがナビゲーションにたかったが、狛犬や家庭ではない他のページを持っています。

ホームページには他のページが表示されないルートアイコンが表示されています。

0

cms_pageテーブルの中で番号が最も小さいtree_idのページがホームページです。これは通常、作成した最初のページになります。別のページをホームページにしたい場合は、データベース内のtree_idの値を手動で変更できます(残念ながらadminを使用しないでください)。

関連する問題