Django - Статическое отображение контента на основе URL - PullRequest
3 голосов
/ 24 апреля 2010

Я работаю над сайтом Django с базовым дизайном из трех столбцов. Навигация по левому столбцу, содержание в центральном столбце и блоки содержимого, относящиеся к URL в правом столбце.

Мой вопрос касается наилучшего метода управления блоками контента для конкретных URL в правом столбце.

Я подумываю о чем-то похожем на приложение Flatpages, которое сделает контент доступным для контекста шаблона, если URL соответствует предварительно определенному шаблону (возможно, регулярное выражение?).

Кто-нибудь знает, существует ли такое приложение?

Если нет, я ищу несколько советов о том, как лучше всего это реализовать. Особенно в отношении соответствия шаблонов текущему URL. Есть ли хороший способ повторно использовать части диспетчера URL Django для этого использования?

Ответы [ 3 ]

1 голос
/ 25 апреля 2010

Django CMS - хорошее предложение, оно зависит от того, насколько глубоко вы хотите зайти. Если это только начало различных видов динамического контента, который вы хотите, то вам обязательно нужно идти этим путем.

Простое одноразовое решение будет примерно таким:

Вам просто нужно написать представление и добавить в конец URL несколько переменных, которые бы определяли, что там показывалось. В зависимости от того, насколько вам нужно, вы можете просто создать простые модели и просто сопоставить вид с ключом модели

www.example.com / содержание / sidecontent / шутки /

так что, если бы "шутки" были вашим блоком переменной sidecontent (один из многих в ваших экземплярах модели сторон), запись urls.py для этого будет

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

, а затем в вашем приложении стороны есть представление с

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

и т.д ...

1 голос
/ 24 апреля 2010

Для чего-то подобного я бы лично использовал Django CMS . Это как плоские страницы на стероидах.

В Django CMS есть концепция страниц, шаблонов и плагинов. Каждая страница имеет связанный шаблон. Шаблоны имеют заполнители, в которые вы можете вставлять различные плагины. Плагины похожи на мини-приложения, которые могут иметь динамический контент на основе моделей.

0 голосов
/ 25 апреля 2010

Хотя Django-CMS является интересным предложением, существует довольно много проектов, которые делают именно то, что вы просили - визуализировать блоки контента на основе URL. Основным, о котором я знаю, является django-flatblocks .

...