from dataclasses import dataclass from django.http import HttpRequest, HttpResponse, Http404 from django.shortcuts import render, redirect from items.models import Category, Item # Create your views here. @dataclass class SelectedCategory: name: str | None id: str | None def index(request: HttpRequest, category: str | None = None) -> HttpResponse: selected_category = SelectedCategory(name=None, id=None) if category is not None: try: cat = Category.objects.get(slug=category.lower()) selected_category = SelectedCategory(name=cat.name, id=cat.slug) except Category.DoesNotExist: raise Http404() return render(request, 'catalog/index.html', { 'categories': Category.objects.all(), 'items': Item.objects.all(), 'selected_category': selected_category })