Django.fun

Display of parent categories does not work

Greetings! I can't solve this problem myself, I have the following code:

urls.py

re_path(r'^category/(?P<hierarchy>.*)$', show_category, name='category'),

I tried different things, settled on two options after the comment "# No category, show top-level content somehow"

views.py

def show_category(request, hierarchy=None):
hierarchy = (hierarchy or "").strip("/")  # Remove stray slashes
if hierarchy:
    category_slug = hierarchy.split('/')
    parent = None

    for slug in category_slug[:-1]:
        parent = Categories.objects.get(parent=parent, slug=slug)

    category = Categories.objects.get(parent=parent, slug=category_slug[-1])
else:
    category = None

if category:
    return render(request, 'shop/categories.g.html', {'instance': category})
# No category, show top-level content somehow

# categories = Categories.objects.all()
category = Categories.objects.filter(parent=None)
return render(request, 'shop/categories.g.html', {'instance': category})

The problem is that the path /category/window-and-door opens the required category. But with /category/ nothing is displayed, the template uses {{ instance.title }}

Tutorials

Константы Python: Улучшение управляемости вашего кода

Современный Python: начинаем проект с pyenv и poetry

Настройка проекта Python — виртуальные среды и управление пакетами

Использование requests в Python — тайм-ауты, повторы, хуки

Понимание декораторов в Python

ProcessPoolExecutor в Python: полное руководство

map() против submit() с ProcessPoolExecutor в Python

Понимание атрибутов, словарей и слотов в Python

Полное руководство по slice в Python

Выпуск Django 4.0

Безопасное развертывание приложения Django с помощью Gunicorn, Nginx и HTTPS

Автоматический повтор невыполненных задач Celery

Django REST Framework и Elasticsearch

Докеризация Django с помощью Postgres, Gunicorn и Nginx

Асинхронные задачи с Django и Celery

Релизы безопасности Django: 3.2.4, 3.1.12 и 2.2.24

Выпуски исправлений ошибок Django: 3.2.3, 3.1.11 и 2.2.23

Эффективное использование сериализаторов Django REST Framework

Выпуски безопасности Django: 3.2.2, 3.1.10 и 2.2.22

Выпущенные релизы безопасности Django: 3.2.1, 3.1.9 и 2.2.21

View all tutorials →