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("初始化数据完成!")