init medical training project
This commit is contained in:
@@ -0,0 +1 @@
|
||||
# init
|
||||
@@ -0,0 +1,114 @@
|
||||
import os
|
||||
from django.core.management.base import BaseCommand
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
User = get_user_model()
|
||||
|
||||
|
||||
class Command(BaseCommand):
|
||||
help = '初始化系统用户数据'
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument(
|
||||
'--reset',
|
||||
action='store_true',
|
||||
help='重置所有用户数据',
|
||||
)
|
||||
|
||||
def handle(self, *args, **options):
|
||||
if options['reset']:
|
||||
self.stdout.write(self.style.WARNING('正在清除所有用户...'))
|
||||
User.objects.filter(is_superuser=False).delete()
|
||||
self.stdout.write(self.style.SUCCESS('普通用户已清除'))
|
||||
|
||||
# 创建超级管理员
|
||||
self._create_superadmin()
|
||||
|
||||
# 创建测试角色用户
|
||||
self._create_test_users()
|
||||
|
||||
self.stdout.write(self.style.SUCCESS('\n[完成] 用户初始化完成'))
|
||||
|
||||
def _create_superadmin(self):
|
||||
"""创建超级管理员"""
|
||||
username = 'admin'
|
||||
password = 'admin123'
|
||||
|
||||
user, created = User.objects.get_or_create(
|
||||
username=username,
|
||||
defaults={
|
||||
'is_staff': True,
|
||||
'is_superuser': True,
|
||||
'real_name': '系统管理员',
|
||||
'role_type': 'super_admin',
|
||||
'status': 1,
|
||||
}
|
||||
)
|
||||
user.set_password(password)
|
||||
user.save()
|
||||
|
||||
if created:
|
||||
self.stdout.write(self.style.SUCCESS(f'[创建] 超级管理员: {username} / {password}'))
|
||||
else:
|
||||
self.stdout.write(self.style.WARNING(f'[重置] 管理员密码: {username} / {password}'))
|
||||
|
||||
def _create_test_users(self):
|
||||
"""创建测试用户"""
|
||||
test_users = [
|
||||
{
|
||||
'username': 'doctor1',
|
||||
'password': 'doctor123',
|
||||
'real_name': '张医生',
|
||||
'role_type': 'doctor',
|
||||
'phone': '13800138001',
|
||||
'title_name': '主任医师',
|
||||
'major': '心内科',
|
||||
},
|
||||
{
|
||||
'username': 'student1',
|
||||
'password': 'student123',
|
||||
'real_name': '李同学',
|
||||
'role_type': 'student',
|
||||
'phone': '13800138002',
|
||||
'training_stage': '规培',
|
||||
'learning_target': '掌握常见病诊断',
|
||||
},
|
||||
{
|
||||
'username': 'teacher1',
|
||||
'password': 'teacher123',
|
||||
'real_name': '王老师',
|
||||
'role_type': 'teacher',
|
||||
'phone': '13800138003',
|
||||
'title_name': '副主任医师',
|
||||
'major': '呼吸内科',
|
||||
},
|
||||
{
|
||||
'username': 'content_admin',
|
||||
'password': 'content123',
|
||||
'real_name': '内容管理员',
|
||||
'role_type': 'content_admin',
|
||||
'phone': '13800138004',
|
||||
},
|
||||
]
|
||||
|
||||
for user_data in test_users:
|
||||
password = user_data.pop('password')
|
||||
user, created = User.objects.get_or_create(
|
||||
username=user_data['username'],
|
||||
defaults={**user_data, 'status': 1}
|
||||
)
|
||||
user.set_password(password)
|
||||
user.save()
|
||||
|
||||
if created:
|
||||
self.stdout.write(
|
||||
self.style.SUCCESS(
|
||||
f'[创建] 用户: {user_data["username"]} / {password} ({user_data["real_name"]})'
|
||||
)
|
||||
)
|
||||
else:
|
||||
self.stdout.write(
|
||||
self.style.WARNING(
|
||||
f'[已存在] 用户: {user_data["username"]} ({user_data["real_name"]})'
|
||||
)
|
||||
)
|
||||
Reference in New Issue
Block a user