import os import sys import django os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'backend.settings') django.setup() from django.contrib.auth import get_user_model from django.core.exceptions import ValidationError User = get_user_model() def create_admin_user(username='admin', password='admin123', email='admin@example.com', name='系统管理员'): """ 创建管理员用户 Args: username: 用户名 password: 密码 email: 邮箱 name: 姓名 Returns: User: 创建的用户对象或已存在的用户对象 """ try: user = User.objects.get(username=username) print(f"用户 '{username}' 已存在,跳过创建") return user except User.DoesNotExist: try: user = User.objects.create_superuser( username=username, email=email, password=password ) user.name = name user.phone = None user.show_hosts = False user.status = 'approved' user.save() print(f"✓ 成功创建管理员用户: {username}") print(f" - 姓名: {name}") print(f" - 邮箱: {email}") print(f" - 状态: {user.status}") return user except ValidationError as e: print(f"✗ 创建用户失败,验证错误: {e}") return None except Exception as e: print(f"✗ 创建用户失败: {e}") import traceback traceback.print_exc() return None def create_test_users(): """ 创建测试用户 """ test_users = [ { 'username': 'testuser', 'password': 'test123', 'email': 'test@example.com', 'name': '测试用户', 'is_staff': False, 'is_superuser': False }, { 'username': 'developer', 'password': 'dev123', 'email': 'dev@example.com', 'name': '开发人员', 'is_staff': True, 'is_superuser': False } ] created_count = 0 for user_data in test_users: try: user = User.objects.get(username=user_data['username']) print(f"用户 '{user_data['username']}' 已存在,跳过创建") continue except User.DoesNotExist: try: user = User.objects.create_user( username=user_data['username'], email=user_data['email'], password=user_data['password'] ) user.name = user_data['name'] user.is_staff = user_data['is_staff'] user.is_superuser = user_data['is_superuser'] user.phone = None user.show_hosts = False user.status = 'approved' user.save() print(f"✓ 成功创建用户: {user_data['username']} ({user_data['name']})") created_count += 1 except Exception as e: print(f"✗ 创建用户 '{user_data['username']}' 失败: {e}") return created_count def list_all_users(): """ 列出所有用户 """ print("\n" + "=" * 60) print("当前系统用户列表:") print("=" * 60) users = User.objects.all() if not users: print("暂无用户") else: for user in users: print(f" - 用户名: {user.username}") print(f" 姓名: {user.name}") print(f" 邮箱: {user.email}") print(f" 手机号: {user.phone}") print(f" 状态: {user.status}") print(f" 是否管理员: {'是' if user.is_superuser else '否'}") print(f" 是否员工: {'是' if user.is_staff else '否'}") print(f" 是否激活: {'是' if user.is_active else '否'}") print() if __name__ == '__main__': print("=" * 60) print("开始初始化用户数据...") print("=" * 60) admin = create_admin_user() if admin: print("\n创建测试用户...") test_count = create_test_users() print(f"\n✓ 成功创建 {test_count} 个测试用户") list_all_users() print("\n" + "=" * 60) print("用户初始化完成!") print("=" * 60) sys.exit(0) else: print("\n" + "=" * 60) print("用户初始化失败!") print("=" * 60) sys.exit(1)