37714-vm/core/views.py
2026-01-22 19:41:45 +00:00

55 lines
1.8 KiB
Python

from django.shortcuts import render, get_object_or_404
from .models import Category, Product
def home(request):
"""Landing page with featured categories and products."""
categories = Category.objects.all()[:4]
featured_products = Product.objects.filter(is_active=True)[:6]
context = {
"categories": categories,
"featured_products": featured_products,
"project_name": "GiftShop Polska",
}
return render(request, "core/index.html", context)
def catalog(request):
"""Product catalog with category filtering."""
category_slug = request.GET.get('category')
categories = Category.objects.all()
products = Product.objects.filter(is_active=True)
selected_category = None
if category_slug:
selected_category = get_object_or_404(Category, slug=category_slug)
products = products.filter(category=selected_category)
context = {
"categories": categories,
"products": products,
"selected_category": selected_category,
}
return render(request, "core/catalog.html", context)
def product_detail(request, slug):
"""Individual product detail page."""
product = get_object_or_404(Product, slug=slug, is_active=True)
context = {
"product": product,
}
return render(request, "core/product_detail.html", context)
def constructor(request):
"""Gift box constructor page."""
return render(request, "core/constructor.html", {"title": "Box Constructor"})
def cart(request):
"""Shopping cart page."""
return render(request, "core/cart.html", {"title": "Your Cart"})
def favorites(request):
"""Favorites/Wishlist page."""
return render(request, "core/favorites.html", {"title": "Your Favorites"})
def blog(request):
"""Blog index page."""
return render(request, "core/blog.html", {"title": "Gift Shop Blog"})