Django5+Vue3:OA系统前后端分离项目实战-自定义命令初始化
# 在你的 Django 应用的 __init__.py 文件中添加以下代码
from django.core.management.base import BaseCommand
from django.core.management import call_command
from django.conf import settings
class Command(BaseCommand):
help = '初始化OA系统'
def handle(self, *args, **options):
# 检查是否已经初始化
if getattr(settings, 'OA_INITIALIZED', False):
self.stdout.write(self.style.SUCCESS('OA系统已经初始化过了。'))
return
# 执行数据库迁移
self.stdout.write(self.style.SUCCESS('开始执行数据库迁移...'))
call_command('migrate', '--no-input')
# 创建超级用户
self.stdout.write(self.style.SUCCESS('创建超级用户...'))
call_command('createsuperuser', '--no-input', '--username=admin', '--email=admin@example.com')
# 标记OA系统已初始化
self.stdout.write(self.style.SUCCESS('标记OA系统已初始化。'))
setattr(settings, 'OA_INITIALIZED', True)
这段代码定义了一个自定义的 Django 命令,用于初始化OA系统。它会检查系统是否已经初始化,如果没有,它会执行数据库迁移和创建超级用户的命令。最后,它会在设置中设置一个标志表明系统已经初始化。这样在后续的运行中,命令就会检查到系统已经初始化,从而不会重复执行这些初始化操作。
评论已关闭