Как я могу получить 'pk' или 'id' в get_context_data из ListView
Как получить 'pk' или 'id' в get_context_data из ListView
class AllListView(ListView):
context_object_name = 'all_products'
queryset = Product.objects.all
template_name = 'jewelry_store/home.html'
def get_context_data(self,**kwargs):
context = super(AllListView,self).get_context_data(**kwargs)
context['collections'] = Collection.objects.all
context['products'] = self.queryset
context['cool'] = Collection.objects.filter(pk=self.kwargs.get('pk'))
на выходе получается пустой набор запросов

в урлах
path('', views.AllListView.as_view(), name='all_products')
``
Ваш путь не имеет параметра URL pk, поэтому self.kwargs.get('pk') будет None и, таким образом, не будет соответствовать элементу.
Вы должны закодировать первичный ключ в URL, например:
path('<int:pk>/', views.AllListView.as_view(), name='all_products')
и в ListView, то вы действительно можете извлечь соответствующие Collection:
from django.shortcuts import get_object_or_404
class AllListView(ListView):
queryset = Product.objects.all()
template_name = 'jewelry_store/home.html'
context_object_name = 'products'
def get_context_data(self,**kwargs):
context = super().get_context_data(**kwargs)
context['collections'] = Collection.objects.all()
context['cool'] = get_object_or_404(Collection, pk=self.kwargs['pk'])
return context