40 lines
1.2 KiB
Python
40 lines
1.2 KiB
Python
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='*')
|
|
|
|
def handle(self, *args, **options):
|
|
reset = False
|
|
if isinstance(options.get('y'), list) or isinstance(options.get('Y'), list):
|
|
reset = True
|
|
if isinstance(options.get('n'), list) or isinstance(options.get('N'), list):
|
|
reset = False
|
|
print(f"正在准备初始化数据,{'如有初始化数据,将会不做操作跳过' if not reset else '初始数据将会先删除后新增'}...")
|
|
|
|
for app in settings.INSTALLED_APPS:
|
|
|
|
try:
|
|
exec(f"""
|
|
from {app}.initialize import main
|
|
main(reset={reset})
|
|
""")
|
|
except ModuleNotFoundError:
|
|
pass
|
|
print("初始化数据完成!")
|