Теоретически для этого хорошо подходит «django-mptt» (https://django-mptt.readthedocs.io/en/latest/index.html). Строим дерево категорий и подкатегорий, отображаем ссылку на товарный слаг, и все работает хорошо. Но в адресной строке отображается только последняя категория и название продукта, а мне нужен полный путь.
За основу беру "django-mptt-urls" (https://github.com/0xE111/ django-mptt-urls) там «Фото» используется как конечный объект.
Мы строим путь на основе модели «Категория», а список конечных объектов в «шаблоны/галерея/категория» {% для фото в экземпляре.photos.all%} доступен в подкатегории. Возникает проблема при попытке отобразить модель Photo на отдельной странице в отдельном DetailView:
- Я создаю Absolute_path, используя экземпляр.get_absolute_url и photo.slug. на нужную страницу, у нас нет абсолютного_пути в таблице фотографий. Можно ли вообще таким образом отобразить нужную страницу?
- Получив в url абсолютный_путь, django сначала считывает его как категорию r'^gallery/(?P.*)$ '. Как различать пути?
{% for photo in instance.photos.all %}
{{ photo.name }}
{% with final_path=instance.get_absolute_url|add:'/'|default:'' %}
{% if final_path %}
{% with final_path|slice:"1:" as sliced_path %}
{{ photo.name }}
{% endwith %}
{% else %}
{{ photo.name }}
{% endif %}
{% endwith %}
Подробнее здесь: https://stackoverflow.com/questions/791 ... mptt-url-c
Мобильная версия