feat: 优化获取所有项目下的app里的models配置项
This commit is contained in:
@@ -43,10 +43,8 @@ sys.path.insert(0, os.path.join(PLUGINS_PATH))
|
|||||||
DEBUG = locals().get("DEBUG", True)
|
DEBUG = locals().get("DEBUG", True)
|
||||||
ALLOWED_HOSTS = locals().get("ALLOWED_HOSTS", ["*"])
|
ALLOWED_HOSTS = locals().get("ALLOWED_HOSTS", ["*"])
|
||||||
|
|
||||||
# Application definition
|
# 列权限需要排除的App应用
|
||||||
CUSTOM_APPS = [
|
COLUMN_EXCLUDE_APPS = ['channels', 'captcha'] + locals().get("COLUMN_EXCLUDE_APPS", [])
|
||||||
"dvadmin.system",
|
|
||||||
]
|
|
||||||
|
|
||||||
INSTALLED_APPS = [
|
INSTALLED_APPS = [
|
||||||
"django.contrib.auth",
|
"django.contrib.auth",
|
||||||
@@ -60,8 +58,8 @@ INSTALLED_APPS = [
|
|||||||
"corsheaders", # 注册跨域app
|
"corsheaders", # 注册跨域app
|
||||||
"drf_yasg",
|
"drf_yasg",
|
||||||
"captcha",
|
"captcha",
|
||||||
'channels',
|
"channels",
|
||||||
*CUSTOM_APPS,
|
"dvadmin.system",
|
||||||
]
|
]
|
||||||
|
|
||||||
MIDDLEWARE = [
|
MIDDLEWARE = [
|
||||||
|
|||||||
@@ -44,4 +44,5 @@ LOGIN_NO_CAPTCHA_AUTH = True
|
|||||||
# ================================================= #
|
# ================================================= #
|
||||||
|
|
||||||
ALLOWED_HOSTS = ["*"]
|
ALLOWED_HOSTS = ["*"]
|
||||||
CUSTOM_APPS = []
|
# 列权限中排除App应用
|
||||||
|
COLUMN_EXCLUDE_APPS = []
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ from django.db import models
|
|||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
|
|
||||||
from application import settings
|
from application import settings
|
||||||
|
|
||||||
table_prefix = settings.TABLE_PREFIX # 数据库表名前缀
|
table_prefix = settings.TABLE_PREFIX # 数据库表名前缀
|
||||||
|
|
||||||
|
|
||||||
@@ -71,10 +72,13 @@ class CoreModel(models.Model):
|
|||||||
id = models.BigAutoField(primary_key=True, help_text="Id", verbose_name="Id")
|
id = models.BigAutoField(primary_key=True, help_text="Id", verbose_name="Id")
|
||||||
description = models.CharField(max_length=255, verbose_name="描述", null=True, blank=True, help_text="描述")
|
description = models.CharField(max_length=255, verbose_name="描述", null=True, blank=True, help_text="描述")
|
||||||
creator = models.ForeignKey(to=settings.AUTH_USER_MODEL, related_query_name='creator_query', null=True,
|
creator = models.ForeignKey(to=settings.AUTH_USER_MODEL, related_query_name='creator_query', null=True,
|
||||||
verbose_name='创建人', help_text="创建人", on_delete=models.SET_NULL, db_constraint=False)
|
verbose_name='创建人', help_text="创建人", on_delete=models.SET_NULL,
|
||||||
|
db_constraint=False)
|
||||||
modifier = models.CharField(max_length=255, null=True, blank=True, help_text="修改人", verbose_name="修改人")
|
modifier = models.CharField(max_length=255, null=True, blank=True, help_text="修改人", verbose_name="修改人")
|
||||||
dept_belong_id = models.CharField(max_length=255, help_text="数据归属部门", null=True, blank=True, verbose_name="数据归属部门")
|
dept_belong_id = models.CharField(max_length=255, help_text="数据归属部门", null=True, blank=True,
|
||||||
update_datetime = models.DateTimeField(auto_now=True, null=True, blank=True, help_text="修改时间", verbose_name="修改时间")
|
verbose_name="数据归属部门")
|
||||||
|
update_datetime = models.DateTimeField(auto_now=True, null=True, blank=True, help_text="修改时间",
|
||||||
|
verbose_name="修改时间")
|
||||||
create_datetime = models.DateTimeField(auto_now_add=True, null=True, blank=True, help_text="创建时间",
|
create_datetime = models.DateTimeField(auto_now_add=True, null=True, blank=True, help_text="创建时间",
|
||||||
verbose_name="创建时间")
|
verbose_name="创建时间")
|
||||||
|
|
||||||
@@ -136,12 +140,23 @@ def get_model_from_app(app_name):
|
|||||||
|
|
||||||
|
|
||||||
def get_custom_app_models(app_name=None):
|
def get_custom_app_models(app_name=None):
|
||||||
"""获取所有项目下的app里的models"""
|
"""
|
||||||
|
获取所有项目下的app里的models
|
||||||
|
"""
|
||||||
if app_name:
|
if app_name:
|
||||||
return get_model_from_app(app_name)
|
return get_model_from_app(app_name)
|
||||||
|
all_apps = apps.get_app_configs()
|
||||||
res = []
|
res = []
|
||||||
for app in settings.CUSTOM_APPS:
|
for app in all_apps:
|
||||||
all_models = get_model_from_app(app)
|
if app.name.startswith('django'):
|
||||||
|
continue
|
||||||
|
if app.name in settings.COLUMN_EXCLUDE_APPS:
|
||||||
|
continue
|
||||||
|
try:
|
||||||
|
all_models = get_model_from_app(app.name)
|
||||||
|
if all_models:
|
||||||
for model in all_models:
|
for model in all_models:
|
||||||
res.append(model)
|
res.append(model)
|
||||||
|
except Exception as e:
|
||||||
|
pass
|
||||||
return res
|
return res
|
||||||
|
|||||||
Reference in New Issue
Block a user