From 97c3ff60c371bfb92679a4aec48a6999ed5e2ff2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9D=8E=E5=BC=BA?= <1206709430@qq.com> Date: Sat, 3 Jul 2021 19:50:15 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=8A=9F=E8=83=BD(dvadmin):=20=20pyth?= =?UTF-8?q?on=20manage.py=20createapp=20=E4=B8=80=E7=BA=A7=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E5=90=8D/app01=20...=20=20#=20=E6=94=AF=E6=8C=81?= =?UTF-8?q?=E5=A4=9A=E7=BA=A7=E7=9B=AE=E5=BD=95=E5=BB=BAapp?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../op_drf/management/commands/createapp.py | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/dvadmin-backend/apps/vadmin/op_drf/management/commands/createapp.py b/dvadmin-backend/apps/vadmin/op_drf/management/commands/createapp.py index dcdd3ec..02e0b56 100644 --- a/dvadmin-backend/apps/vadmin/op_drf/management/commands/createapp.py +++ b/dvadmin-backend/apps/vadmin/op_drf/management/commands/createapp.py @@ -13,6 +13,7 @@ class Command(BaseCommand): 创建App命令: python manage.py createapp app名 python manage.py createapp app01 app02 ... + python manage.py createapp 一级文件名/app01 ... # 支持多级目录建app """ def add_arguments(self, parser): @@ -21,7 +22,9 @@ class Command(BaseCommand): def handle(self, *args, **options): app_name = options.get('app_name') for name in app_name: - app_path = os.path.join(BASE_DIR, "apps", name) + names = name.split('/') + dnames = ".".join(names) + app_path = os.path.join(BASE_DIR, "apps", *names) # 判断app是否存在 if os.path.exists(app_path): print(f"创建失败,App {name} 已存在!") @@ -39,20 +42,20 @@ class Command(BaseCommand): content = f"""from django.apps import AppConfig -class {name.capitalize()}Config(AppConfig): - name = 'apps.{name}' - verbose_name = "{name}App" +class {name[-1].capitalize()}Config(AppConfig): + name = 'apps.{dnames}' + verbose_name = "{names[-1]}App" """ with open(os.path.join(app_path, "apps.py"), 'w', encoding='UTF-8') as f: f.write(content) f.close() # 注册app到 settings.py 中 - injection(os.path.join(BASE_DIR, "application", "settings.py"), f" 'apps.{name}',\n", "INSTALLED_APPS", + injection(os.path.join(BASE_DIR, "application", "settings.py"), f" 'apps.{dnames}',\n", "INSTALLED_APPS", "]") # 注册app到 urls.py 中 injection(os.path.join(BASE_DIR, "application", "urls.py"), - f" re_path(r'^{name}/', include('apps.{name}.urls')),\n", "urlpatterns = [", + f" re_path(r'^{name}/', include('apps.{dnames}.urls')),\n", "urlpatterns = [", "]") print(f"创建 {name} App成功")