Files
rigbyraffle/raffle/management/commands/seed_data.py
2026-03-14 06:12:56 -05:00

54 lines
2.6 KiB
Python

import random
from django.core.management.base import BaseCommand
from raffle.models import User, Item, Favorite
class Command(BaseCommand):
help = 'Pre-populates the database with initial users and items for RigbyRaffle'
def handle(self, *args, **kwargs):
self.stdout.write('Seeding database...')
# 1. Create Auctioneer
auctioneer, created = User.objects.get_or_create(username='admin', defaults={'email': 'admin@rigbyraffle.com'})
if created:
auctioneer.set_password('admin')
auctioneer.is_staff = True
auctioneer.is_superuser = True
auctioneer.is_auctioneer = True
auctioneer.save()
self.stdout.write(self.style.SUCCESS('Created Auctioneer (username: admin, password: admin)'))
# 2. Create Visitors
visitors = []
for i in range(1, 4):
visitor, created = User.objects.get_or_create(username=f'visitor{i}', defaults={'email': f'visitor{i}@example.com'})
if created:
visitor.set_password('password')
visitor.save()
visitors.append(visitor)
self.stdout.write(self.style.SUCCESS(f'Created {len(visitors)} Visitors (password: password)'))
# 3. Create Items
items_data = [
{'item_number': '101', 'title': 'Vintage Leather Jacket', 'description': 'A beautiful, timeless vintage leather jacket in superb condition.'},
{'item_number': '102', 'title': 'Handcrafted Wooden Coffee Table', 'description': 'Solid oak handcrafted coffee table with a polished finish.'},
{'item_number': '103', 'title': 'Professional Espresso Machine', 'description': 'High-end barista-grade espresso machine for coffee lovers.'},
{'item_number': '104', 'title': 'Set of 4 Rare Vinyls', 'description': 'A curated collection of rare classic rock vinyl records.'},
{'item_number': '105', 'title': 'Mountain Bike', 'description': '21-speed professional mountain bike, barely used.'},
]
items = []
for data in items_data:
item, created = Item.objects.get_or_create(item_number=data['item_number'], defaults=data)
items.append(item)
self.stdout.write(self.style.SUCCESS(f'Created {len(items)} Items'))
# 4. Create Random Favorites
for visitor in visitors:
# Each visitor favorites 2 random items
fav_items = random.sample(items, 2)
for item in fav_items:
Favorite.objects.get_or_create(user=visitor, item=item)
self.stdout.write(self.style.SUCCESS('Database successfully pre-populated!'))