Как организовать роутинг в django?

Приветствую!
Как правильно организовать роутинг в Django?
Есть таблица с категориями (id, name, parent_id, slug) и таблица со страницами (id, name, category_id, slug).
Категории имеют произвольный уровень вложенности. При формировании ссылки получается что-то вроде: site.ru/category/category-lvl-1/category-lvl2/some-page
Действия:
  1. Распарсить url по / . Получить list('category', 'category-lvl-1', 'category-lvl2', 'some-page')
  2. По последнему элементу списка делать запрос к таблице страниц.
    1. Если есть, достать страницу с таким slug. По оставшимся сделать выборку из категорий.
    2. Если такой страницы нет, сделать выборку по всем элементам из категорий.

  3. Если такие категории есть, сопоставить порядок по parent_id.
  4. Если нет ошибок вывести категорию/страницу, в противном случае - 404.

Я правильно понимаю порядок дейтсвий или в Django есть способ сделать проще?
  • Вопрос задан
  • 237 просмотров
Решения вопроса 1
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Хоть и несколько читерское, но зато предельно простое решение:
urlpatterns = [
    url(r'^(?P<slug>[-\w/]+)/details/$', ProductDetail.as_view(), name='product'),
    url(r'^(?P<slug>[-\w/]+)/$', ProductList.as_view(), name='category'),
]
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы