Django Переменные есть во views, но в шаблоне не выводятся

В urls.py

urlpatterns = [
    path('', views.BrowseAll), #Выводит всё, и категории, и компоненты в категории
    path('<slug:category_slug>/', views.BrowseCategory, name = 'BrowseCategory'), #Только компоненты в категории
    path('<slug:category_slug>/<slug:component_slug>/', views.BrowseComponent, name = 'BrowseComponent'), #Только компонент
]

Вот мой views.py

def BrowseComponent(request, category_slug, component_slug):
    context = {}
    category = Category.objects.all().filter(slug = category_slug) #Определяем категорию из url
    component = Component.objects.all().filter(category__in = category, slug = component_slug) #Смотрим если есть компонент в категории, и берём нужный по полю slug

    context['category'] = category
    context['component'] = component

    print(category) #Поставил для вывода в консоль
    print(component) #Поставил для вывода в консоль

    return render(request, 'components/BrowseComponent.html', context)


А вот и сам шаблон

<h2>{{ component.name }}</h2>

Учитывая print`ы в views, в консоли, при загрузке страницы, выводит

<QuerySet [<Category: Hero>]>
<QuerySet [<Component: Fullscreen hero>]>

Но, на странице только пустой тег. Приму любой ответ, даже ссылку на Гугл поиск (я просто не знаю, как это правильно забить)


Ответы (1 шт):

Автор решения: Edward

Итак, почему же переменная не выводилась, проведя небольшой дебаг, я обнаружил, что если {{ component.name }} ввести в конструкцию цикла, то все Ок. Я начал рыть, и заметил, что ошибка была в том, что я фильтровал компоненты по slug полю, а не получал его, заменив

component = Component.objects.all().filter(category__in = category, slug = component_slug)

На

component = Component.objects.all().filter(category__in = category).get(slug = component_slug)

Всё отлично работает.

→ Ссылка