Как использовать django-sitetree? - PullRequest
7 голосов
/ 22 января 2011

Я пытаюсь использовать django-sitetree , но я не понимаю, как выполнить шаг 3:

"Перейти на сайт администратора Django и добавить несколько деревьев и элементов дерева. "

Как сделать ситтри в админке?Я полагаю, что первым шагом является выбор псевдонима для «дерева сайтов», которое вы собираетесь добавить.

Следующий шаг - добавить «Элемент дерева сайта».На этой странице вы должны выбрать родителя, заголовок, URL.Учитывая, что мое приложение динамически со структурой URL, как это localhost:8000/categoryname/entryname, как мне выбрать URL?

Кстати, я пытаюсь добавить крошки в мои шаблоны.

1 Ответ

19 голосов
/ 03 февраля 2011

Чтобы создать дерево:

  1. Перейти на панель администрирования сайта;
  2. Нажмите + Добавить возле 'Деревья сайта';
  3. Введите псевдоним для вашего сайта, например, 'Maintree'.
    Вы будете обращаться к своему дереву по этому псевдониму в тегах шаблона;
  4. Нажмите «Добавить элемент дерева сайта»;
  5. Создать первый элемент:

    Родитель: Поскольку это корневой элемент, который не имеет родителя.
    Заголовок: Пусть это будет «Мой сайт».
    URL: Этот URL-адрес является статическим, поэтому укажите здесь '/'.

  6. Создайте второй элемент (который будет обрабатывать 'categoryname' из вашего 'categoryname / entryname'):

    Родитель: Выберите пункт «Мой сайт» на шаге 5.
    Заголовок: Поставьте здесь «Category # {{category.id}}».
    URL: Поместите именованный URL в категорию с подробным названием category.name.
    В «Дополнительные настройки»: установите флажок « URL-адрес как шаблон ».

  7. Создайте третий элемент (который будет обрабатывать 'entryname' из вашего 'categoryname / entryname'):

    Родитель: Выберите пункт «Категория # {{category.id}}» на шаге 6.
    Заголовок: Поставьте здесь «Entry # {{entry.id}}».
    URL: Укажите именованный URL-адрес «entry-details category.name entry.name».
    В «Дополнительные настройки»: установите флажок « URL-адрес как шаблон ».

  8. Поместите '{% load sitetree%}' в ваш шаблон, чтобы иметь доступ к тегам sitetree.
  9. Поместите '{% sitetree_menu из "maintree"%}' в ваш шаблон для отображения меню.
  10. Поместите '{% sitetree_breadcrumbs из "maintree"%}' в ваш шаблон для рендеринга хлебных крошек.

Шаги 6 и 7 требуют пояснений:

  • В заголовках мы используем переменные шаблона Django, которые будут разрешаться так же, как и в ваших шаблонах.

    Например: вы сделали вид для 'categoryname' (назовем его 'details_category'), чтобы передать объект категории в шаблон как переменная категории. Предположим, что у объекта категории есть свойство id. В вашем шаблоне вы используете '{{category.id}}' для визуализации идентификатора. И мы делаем только то же самое для элемента дерева сайта на шаге 6.

  • В URL-адресах мы используем именованные шаблоны URL-адресов Django ( документация ). Это практически идентично использованию тега Django ' url ' в шаблонах.

    Ваша конфигурация URL для шагов 6, 7 должна включать:

    url (r '^ (? P <имя_категории> \ S +) / (? P \ S +) / $', подробный_центр, name = ' подробная информация о записи '),
    url (r '^ (? P <имя_категории> \ S +) / $', 'подробная_категория', имя = ' подробная информация о категории '),

    Таким образом, помещая 'entry-details category.name entry.name' в шаге 7 в поле URL, мы просим sitetree связать этот элемент sitetree с URL с именем 'entry-details', передав ему параметры category_name и entry_name.

Надеюсь, это описание должно заполнить пробел в документации%)

...