7

django-sitetreeを使用しようとしていますが、ステップ 3 の実行方法がわかりません。

「Django 管理サイトに移動し、いくつかのツリーとツリー アイテムを追加します。」

管理パネルでサイトツリーを作成するには? 最初のステップは、追加しようとしている「サイト ツリー」のエイリアスを選択することだと思います。

次のステップは、「サイト ツリー アイテム」を追加することです。このページでは、親、タイトル、URL を選択する必要があります。私のアプリがこのような URL 構造で動的であることを考えると、localhost:8000/categoryname/entrynameどうすれば URL を選択できますか?

ところで、テンプレートにブレッドクラムを追加しようとしています。

4

1 に答える 1

19

ツリーを作成するには:

  1. サイト管理パネルに移動します。
  2. [サイト ツリー] の近くにある [+ 追加] をクリックします。
  3. サイト ツリーのエイリアスを入力します。たとえば、'maintree' です。
    テンプレート タグでこのエイリアスを使用してツリーをアドレス指定します。
  4. 「サイト ツリー アイテムの追加」を押します。
  5. 最初のアイテムを作成:

    親: 親を持たないルート アイテムであるため。
    タイトル:「マイサイト」とします。
    URL:この URL は静的なので、ここに「/」を入れます。

  6. 2 番目の項目を作成します (「categoryname/entryname」から「categoryname」を処理する項目):

    親:ステップ 5 から「マイ サイト」項目を選択します。
    タイトル:ここに「Category #{{ category.id }}」を入力します。
    URL: 'category-detailed category.name' という名前の URL を入れます。
    [追加設定]で、[パターンとしての URL ] チェックボックスをオンにします。

  7. 3 番目の項目を作成します (「categoryname/entryname」から「entryname」を処理する項目):

    親:手順 6 の「Category #{{ category.id }}」項目を選択します。
    タイトル:ここに「Entry #{{ entry.id }}」を入力します。
    URL:名前付き URL 'エントリ詳細カテゴリ.名前エントリ.名前' を入力します。
    [追加設定]で、[パターンとしての URL ] チェックボックスをオンにします。

  8. テンプレートに「{% load sitetree %}」を追加して、sitetree タグにアクセスできるようにします。
  9. '{% sitetree_menu from "maintree" %}' をテンプレートに追加して、メニューをレンダリングします。
  10. '{% sitetree_breadcrumbs from "maintree" %}' をテンプレートに追加して、ブレッドクラムをレンダリングします。

ステップ 6 と 7 にはいくつかの説明が必要です。

  • タイトルでは、Django テンプレート変数を使用します。これは、テンプレートと同じように解決されます。

    例: 'categoryname' ('detailed_category' と呼びましょう) のビューを作成して、'category' 変数としてテンプレートにカテゴリ オブジェクトを渡します。カテゴリ オブジェクトに 'id' プロパティがあるとします。テンプレートでは、'{{ category.id }}' を使用して ID をレンダリングします。そして、ステップ 6 のサイト ツリー アイテムに対しても同じことを行います。

  • URL では、Django の名前付き URL パターン ( documentation ) を使用します。これは、テンプレートでの Django ' url ' タグの使用法とほぼ同じです。

    ステップ 6、7 の URL 構成には、次のものが含まれているはずです。

    url(r'^(?P<カテゴリ名>\S+)/(?P<エントリ名>\S+)/$', '詳細エントリ', name='エントリ詳細'),
    url(r'^(?P<カテゴリ名>\S+)/$', '詳細カテゴリ', name='カテゴリ詳細'),

    そのため、手順 7 の「entry-detailed category.name entry.name」を URL フィールドに入力して、sitetree にその sitetree アイテムを「entry-detailed」という名前の URL に関連付け、category_name および entry_name パラメータを渡すように指示します。

この説明がドキュメントのギャップを埋めることを願っています %)

于 2011-02-03T15:13:58.590 に答える