@bq911

Как реализовать иерархию категорий в урле django?

У меня есть модель категории с полем parent
Сейчас у меня url выглядит так -
path('<slug:slug>/', viewsCategoryDetailView.as_view(), name='category')


Как сделать что бы по одной вьюхе рендерить все категории но с сохранением иерархии в урле по полю parent? По типу cat/subcat/sub-subcat
  • Вопрос задан
  • 297 просмотров
Решения вопроса 2
sergey-gornostaev
@sergey-gornostaev Куратор тега Django
Седой и строгий
Тот случай, когда встроенный маршрутизатор уже не подходит. Я в подобном случае получал из request весь path, получал его md5-хэш и делал выборку по нему. Естественно, при сохранении категорий и их содержимого нужно было получить слаги всех родителей, составить из них путь, получить из него md5-хэш и сохранить в специальное поле.
Ответ написан
@Realmixer
Full stack Python (Django) web-developer
URLs:
path('<path:categories>/', viewsCategoryDetailView.as_view(), name='category')

Views:
def get(self, request, *args, **kwargs):
    categories = kwargs.get('categories').strip('/')  # 'cat/subcat/sub-subcat'
    categories = categories.split('/') # ['cat', 'subcat', 'sub-subcat']
    ...
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы