from django.core.management.base import BaseCommand from core.models import Category, Product from core.pexels import fetch_first import random class Command(BaseCommand): help = 'Seeds the database with initial categories and products' def handle(self, *args, **kwargs): categories_data = [ {'name': 'Tech', 'description': 'Latest gadgets and hardware.'}, {'name': 'Lifestyle', 'description': 'Modern living essentials.'}, {'name': 'Minimalist', 'description': 'Simple and clean aesthetics.'}, ] for cat_data in categories_data: category, created = Category.objects.get_or_create( name=cat_data['name'], defaults={'description': cat_data['description']} ) if created: self.stdout.write(f"Created category: {category.name}") # Sample products products_data = [ ('Minimal Desk Lamp', 'Tech', 89.99, 'minimalist desk lamp'), ('Mechanical Keyboard', 'Tech', 159.00, 'mechanical keyboard'), ('Premium Notebook', 'Minimalist', 25.50, 'aesthetic notebook'), ('Leather Wallet', 'Lifestyle', 45.00, 'leather wallet'), ('Wireless Earbuds', 'Tech', 129.00, 'modern wireless earbuds'), ('Ceramic Coffee Mug', 'Minimalist', 18.00, 'ceramic mug minimalist'), ] for title, cat_name, price, query in products_data: category = Category.objects.get(name=cat_name) if not Product.objects.filter(title=title).exists(): img_data = fetch_first(query) img_url = "" if img_data: img_url = img_data['local_path'] Product.objects.create( title=title, category=category, price=price, description=f"This is a premium {title.lower()} designed for quality and style.", stock=random.randint(10, 50), image_url=img_url ) self.stdout.write(f"Created product: {title}")