django-vue-admin/backend/dvadmin/system/management/commands/init.py

54 lines
1.4 KiB
Python
Raw Normal View History

2022-04-05 05:22:26 +00:00
import logging
from django.core.management.base import BaseCommand
from application import settings
logger = logging.getLogger(__name__)
class Command(BaseCommand):
"""
项目初始化命令: python manage.py init
"""
def add_arguments(self, parser):
parser.add_argument(
"init_name",
nargs="*",
type=str,
)
parser.add_argument("-y", nargs="*")
parser.add_argument("-Y", nargs="*")
parser.add_argument("-n", nargs="*")
parser.add_argument("-N", nargs="*")
2022-04-05 05:22:26 +00:00
def handle(self, *args, **options):
reset = False
if isinstance(options.get("y"), list) or isinstance(options.get("Y"), list):
2022-04-05 05:22:26 +00:00
reset = True
if isinstance(options.get("n"), list) or isinstance(options.get("N"), list):
2022-04-05 05:22:26 +00:00
reset = False
for app in settings.INSTALLED_APPS:
try:
exec(
f"""
2022-05-18 04:43:11 +00:00
from {app}.fixtures.initialize import Initialize
Initialize(reset={reset},app="{app}").run()
"""
)
2022-04-05 05:22:26 +00:00
except ModuleNotFoundError:
2022-05-18 04:43:11 +00:00
# 兼容之前版本初始化
try:
exec(
f"""
from {app}.initialize import main
main(reset={reset})
"""
)
except ModuleNotFoundError:
pass
2022-04-05 05:22:26 +00:00
print("初始化数据完成!")