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)
|