import random from django.core.management.base import BaseCommand from django.utils import timezone from apps.discovery.models import SearchSession, Creator class Command(BaseCommand): help = '创建模拟的Discovery数据' def handle(self, *args, **kwargs): # 创建3个搜索会话 sessions = [] for i in range(1, 4): creator_count = random.randint(20, 100) shoppable_creators = random.randint(3, 26) # 创建不同的日期 if i == 1: date = timezone.datetime(2024, 1, 6).date() elif i == 2: date = timezone.datetime(2022, 1, 7).date() else: date = timezone.datetime(2023, 4, 27).date() session = SearchSession.objects.create( session_number=i, creator_count=creator_count, shoppable_creators=shoppable_creators, avg_followers=162.2, avg_gmv=534.1, avg_video_views=1.9, date_created=date ) sessions.append(session) self.stdout.write(self.style.SUCCESS(f'创建会话: {session}')) # 创建创作者数据 categories = [ 'Phones & Electronics', 'Womenswear & Underwear', 'Sports & Outdoor', 'Food & Beverage', 'Health', 'Kitchenware', 'Furniture', 'Shoes', 'Home Supplies', ] ecommerce_levels = ['L1', 'L2', 'L3', 'L4', 'L5', 'New tag'] exposure_levels = ['KOC-1', 'KOC-2', 'KOL-2', 'KOL-3', 'New tag'] for session in sessions: # 每个会话创建随机数量的创作者 creator_count = random.randint(10, 20) for i in range(creator_count): has_ecommerce = random.choice([True, False]) creator = Creator.objects.create( session=session, name=f"Creator {i+1} in Session {session.session_number}", category=random.choice(categories), ecommerce_level=random.choice(ecommerce_levels), exposure_level=random.choice(exposure_levels), followers=162.2, gmv=534.1, items_sold=18.1, avg_video_views=1.9, has_ecommerce=has_ecommerce ) self.stdout.write(f'创建创作者: {creator.name}') self.stdout.write(self.style.SUCCESS('成功创建所有模拟数据!'))