operations_project/apps/discovery/management/commands/create_mock_discovery_data.py
2025-05-20 15:57:10 +08:00

73 lines
2.6 KiB
Python

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('成功创建所有模拟数据!'))