inital checkin
This commit is contained in:
53
raffle/management/commands/seed_data.py
Normal file
53
raffle/management/commands/seed_data.py
Normal file
@@ -0,0 +1,53 @@
|
||||
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!'))
|
||||
Reference in New Issue
Block a user