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