Показать страницу товара по категориям - передать 2 var в url
Вы получаете товары по категориям в этой функции
Урлы
path('category/<str:slug>', views.categoryslug, name="categoryslug"),
Виды
def categoryslug(request, slug):
category = Category.objects.get(slug=slug)
context = {
'category': category,
'products': category.product_set.all(),
}
#return render(request, 'pages/catpro.html', context)
Но я хочу открыть товар по этой ссылке http://127.0.0.1:8000/category/phone/redmi-8-pro
Шаблон
{% url 'catproslug' product.slug d.slug %}
Урлы
path('category/<str:slug>/<str:proslug>', views.catproslug, name="catproslug")
Виды
def catproslug(request, slug, proslug):
d = Product.objects.get(slug=proslug)
context = {
'd': d,
'category':category
}
return render(request, 'pages/catpro.html', context)
Итак, допустим, у вас есть url, который позволяет просматривать все категории
path('category/', views.categorylist, name="category-list")
также у вас есть url для просмотра всех продуктов категории
path('category/<str:product_category_slug>/', views.product_list, name="product-list")
И, наконец, при нажатии на товар, url детализации товара будет иметь вид
path('category/<str:product_category_slug>/<str:product_slug>/', views.product_detail, name="product-detail")
И ваш views.py будет иметь вид
def product_detail(request, product_category_slug=None, product_slug=None):
# your logic to return product detail