role_based_system/user_management/management/commands/create_test_users.py
2025-04-29 10:21:13 +08:00

155 lines
5.6 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

from django.core.management.base import BaseCommand
from django.contrib.auth import get_user_model
from django.utils import timezone
from rest_framework.authtoken.models import Token
User = get_user_model()
class Command(BaseCommand):
help = '创建测试用户4个管理员7个组长4个组员'
def handle(self, *args, **kwargs):
# 创建管理员 - 4个管理员
admins = [
{
'username': 'admin1',
'password': 'admin123',
'email': 'admin1@example.com',
'name': '张技术管理',
'department': '技术部门',
'role': 'admin',
},
{
'username': 'admin2',
'password': 'admin123',
'email': 'admin2@example.com',
'name': '王产品管理',
'department': '产品部门',
'role': 'admin',
},
{
'username': 'admin3',
'password': 'admin123',
'email': 'admin3@example.com',
'name': '李商务管理',
'department': '商务部门',
'role': 'admin',
},
{
'username': 'admin4',
'password': 'admin123',
'email': 'admin4@example.com',
'name': '赵HR管理',
'department': 'HR',
'role': 'admin',
}
]
for admin_data in admins:
admin, created = User.objects.get_or_create(
username=admin_data['username'],
defaults={
'email': admin_data['email'],
'name': admin_data['name'],
'role': admin_data['role'],
'department': admin_data['department'],
'is_staff': True,
'is_superuser': True,
'last_login': timezone.now()
}
)
if created:
admin.set_password(admin_data['password'])
admin.save()
token = Token.objects.create(user=admin)
self.stdout.write(self.style.SUCCESS(
f'成功创建管理员用户: {admin.username}{admin.name}, Token: {token.key}'
))
else:
self.stdout.write(self.style.WARNING(f'管理员用户已存在: {admin.username}'))
# 创建组长 - 7个部门的组长
leaders = [
{
'username': 'leader1',
'password': 'leader123',
'email': 'leader1@example.com',
'name': '陈达人',
'department': '达人部门',
'role': 'leader'
},
{
'username': 'leader2',
'password': 'leader123',
'email': 'leader2@example.com',
'name': '刘商务',
'department': '商务部门',
'role': 'leader'
},
{
'username': 'leader3',
'password': 'leader123',
'email': 'leader3@example.com',
'name': '杨样本',
'department': '样本中心',
'role': 'leader'
},
{
'username': 'leader4',
'password': 'leader123',
'email': 'leader4@example.com',
'name': '黄产品',
'department': '产品部门',
'role': 'leader'
},
{
'username': 'leader5',
'password': 'leader123',
'email': 'leader5@example.com',
'name': '周AI',
'department': 'AI自媒体',
'role': 'leader'
},
{
'username': 'leader6',
'password': 'leader123',
'email': 'leader6@example.com',
'name': '吴HR',
'department': 'HR',
'role': 'leader'
},
{
'username': 'leader7',
'password': 'leader123',
'email': 'leader7@example.com',
'name': '郑技术',
'department': '技术部门',
'role': 'leader'
}
]
for leader_data in leaders:
leader, created = User.objects.get_or_create(
username=leader_data['username'],
defaults={
'email': leader_data['email'],
'name': leader_data['name'],
'role': leader_data['role'],
'department': leader_data['department'],
'is_staff': False,
'last_login': timezone.now()
}
)
if created:
leader.set_password(leader_data['password'])
leader.save()
token = Token.objects.create(user=leader)
self.stdout.write(self.style.SUCCESS(
f'成功创建组长用户: {leader.username}{leader.name}, Token: {token.key}'
))
else:
self.stdout.write(self.style.WARNING(f'组长用户已存在: {leader.username}'))
self.stdout.write(self.style.SUCCESS('所有测试用户创建完成!'))