Files

121 lines
7.0 KiB
Python
Raw Permalink Normal View History

"""Seed 10 certified OPC users with online avatar photos."""
from django.core.management.base import BaseCommand
from django.utils import timezone
from users.models import User, Role, UserRole
from opc_cert.models import OpcCertification
USERS_DATA = [
{
"username": "zhanglei", "nickname": "张磊", "email": "zhanglei@opc.cn",
"phone": "13800000001", "bio": "10年全栈开发经验精通 Vue/React/Django曾主导多个百万级用户平台的架构设计与交付。",
"location": "北京", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=zhanglei",
"skills": ["Vue.js", "React", "Django", "全栈开发"], "experience": "前阿里巴巴高级工程师,负责过多个核心业务系统开发。",
},
{
"username": "liuyanmei", "nickname": "刘艳梅", "email": "liuyanmei@opc.cn",
"phone": "13800000002", "bio": "UI/UX 设计师,擅长移动端与 Web 端产品设计,拥有丰富的 B 端/C 端设计经验。",
"location": "上海", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=liuyanmei",
"skills": ["UI设计", "UX设计", "Figma", "Sketch"], "experience": "前腾讯设计中心资深设计师,主导过微信小程序生态设计规范。",
},
{
"username": "wangqiang", "nickname": "王强", "email": "wangqiang@opc.cn",
"phone": "13800000003", "bio": "数据科学家,擅长机器学习模型训练和数据可视化,熟悉 TensorFlow 与 PyTorch 框架。",
"location": "深圳", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=wangqiang",
"skills": ["数据分析", "Python", "机器学习", "TensorFlow"], "experience": "前华为云 AI 团队算法工程师。",
},
{
"username": "chenxiaoling", "nickname": "陈小玲", "email": "chenxiaoling@opc.cn",
"phone": "13800000004", "bio": "微信小程序和 App 开发专家3年独立开发经验已上线 20+ 款小程序。",
"location": "杭州", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=chenxiaoling",
"skills": ["微信小程序", "React Native", "Flutter"], "experience": "独立开发者,专注移动端开发与创新应用。",
},
{
"username": "zhaowei", "nickname": "赵伟", "email": "zhaowei@opc.cn",
"phone": "13800000005", "bio": "DevOps 工程师,精通 Kubernetes、Docker 和 CI/CD 流水线搭建。",
"location": "成都", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=zhaowei",
"skills": ["Docker", "Kubernetes", "CI/CD", "Linux"], "experience": "前字节跳动基础架构部高级 SRE 工程师。",
},
{
"username": "sunmengmeng", "nickname": "孙萌萌", "email": "sunmengmeng@opc.cn",
"phone": "13800000006", "bio": "品牌设计师与视觉创意总监,擅长 VI 体系设计、品牌策略和视觉营销。",
"location": "广州", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=sunmengmeng",
"skills": ["品牌设计", "VI设计", "平面设计", "Logo设计"], "experience": "服务过 50+ 品牌客户,包含多家上市企业。",
},
{
"username": "huangdawei", "nickname": "黄大伟", "email": "huangdawei@opc.cn",
"phone": "13800000007", "bio": "资深爬虫与数据采集工程师,精通反爬策略和大规模数据治理方案。",
"location": "南京", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=huangdawei",
"skills": ["爬虫", "Scrapy", "数据采集", "Python"], "experience": "曾为多家电商和金融企业搭建数据采集平台。",
},
{
"username": "lixuemei", "nickname": "李雪梅", "email": "lixuemei@opc.cn",
"phone": "13800000008", "bio": "内容运营与短视频创作者,抖音/快手/小红书多平台达人孵化经验。",
"location": "武汉", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=lixuemei",
"skills": ["视频剪辑", "短视频运营", "内容创作", "新媒体"], "experience": "MCN 机构签约创作者,累计粉丝 500 万+。",
},
{
"username": "zhoujianhua", "nickname": "周建华", "email": "zhoujianhua@opc.cn",
"phone": "13800000009", "bio": "自动化测试与质量保障专家,精通 Selenium、Playwright 和接口测试方案。",
"location": "西安", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=zhoujianhua",
"skills": ["自动化测试", "Playwright", "Selenium", "性能测试"], "experience": "前网易质量保障团队负责人,推动过全链路测试体系建设。",
},
{
"username": "yangtianyu", "nickname": "杨天宇", "email": "yangtianyu@opc.cn",
"phone": "13800000010", "bio": "AI 应用开发工程师,专注 LLM 集成、RAG 架构和智能对话系统。",
"location": "重庆", "avatar_url": "https://api.dicebear.com/7.x/avataaars/svg?seed=yangtianyu",
"skills": ["AI", "NLP", "LLM", "Python"], "experience": "前百度智能对话团队核心开发者。",
},
]
class Command(BaseCommand):
help = '创建10个已认证的OPC专家用户'
def handle(self, *args, **options):
# Get or create the OPC_USER role
opc_role, _ = Role.objects.get_or_create(code='OPC_USER', defaults={'name': 'OPC认证专家', 'is_system': True})
created = 0
for data in USERS_DATA:
user, was_created = User.objects.get_or_create(
username=data['username'],
defaults={
'nickname': data['nickname'],
'email': data['email'],
'phone': data['phone'],
'bio': data['bio'],
'location': data['location'],
'avatar_url': data['avatar_url'],
'rating': 4.80,
'completed_tasks': 0,
'is_recommended': True if created < 3 else False,
'recommend_priority': 10 - created if created < 3 else 0,
}
)
if was_created:
user.set_password('opc123456')
user.save()
# Assign OPC_USER role
UserRole.objects.get_or_create(user=user, role=opc_role)
# Create approved certification
OpcCertification.objects.get_or_create(
user=user,
defaults={
'real_name': data['nickname'],
'skills': data['skills'],
'experience': data['experience'],
'status': 'APPROVED',
'reviewed_at': timezone.now(),
}
)
if was_created:
created += 1
self.stdout.write(f' ✓ 创建用户: {data["nickname"]} ({data["username"]})')
else:
self.stdout.write(f' - 已存在: {data["nickname"]} ({data["username"]})')
self.stdout.write(self.style.SUCCESS(f'\n✅ 已创建 {created} 个认证专家用户'))