feat: 新增列权限配置功能
新增列权限配置,优化代码结构,更新初始化文件
This commit is contained in:
@@ -110,24 +110,36 @@ def get_all_models_objects(model_name=None):
|
||||
return settings.ALL_MODELS_OBJECTS or {}
|
||||
|
||||
|
||||
def get_all_custom_app_models():
|
||||
"""获取所有项目写的app里的models"""
|
||||
for app in settings.CUSTOM_APPS:
|
||||
model_module = import_module(app + '.models')
|
||||
filter_model = [
|
||||
getattr(model_module, item) for item in dir(model_module)
|
||||
if item != 'CoreModel' and issubclass(getattr(model_module, item).__class__, models.base.ModelBase)
|
||||
def get_model_from_app(app_name):
|
||||
"""获取模型里的字段"""
|
||||
model_module = import_module(app_name + '.models')
|
||||
filter_model = [
|
||||
getattr(model_module, item) for item in dir(model_module)
|
||||
if item != 'CoreModel' and issubclass(getattr(model_module, item).__class__, models.base.ModelBase)
|
||||
]
|
||||
model_list = []
|
||||
for model in filter_model:
|
||||
if model.__name__ == 'AbstractUser':
|
||||
continue
|
||||
fields = [
|
||||
{'title': field.verbose_name, 'name': field.name, 'object': field}
|
||||
for field in model._meta.fields
|
||||
]
|
||||
model_list = []
|
||||
for model in filter_model:
|
||||
fields = [
|
||||
{'title': field.verbose_name, 'name': field.name, 'object': field}
|
||||
for field in model._meta.fields
|
||||
]
|
||||
model_list.append({
|
||||
'verbose': model._meta.verbose_name,
|
||||
'model': model.__name__,
|
||||
'object': model,
|
||||
'fields': fields
|
||||
})
|
||||
yield model_list
|
||||
model_list.append({
|
||||
'app': app_name,
|
||||
'verbose': model._meta.verbose_name,
|
||||
'model': model.__name__,
|
||||
'object': model,
|
||||
'fields': fields
|
||||
})
|
||||
return model_list
|
||||
|
||||
|
||||
def get_custom_app_models(app_name=None):
|
||||
"""获取所有项目写的app里的models"""
|
||||
if app_name:
|
||||
return get_model_from_app(app_name)
|
||||
res = []
|
||||
for app in settings.CUSTOM_APPS:
|
||||
res.append(get_model_from_app(app))
|
||||
return res
|
||||
|
||||
@@ -40,13 +40,11 @@ class CustomPagination(PageNumberPagination):
|
||||
try:
|
||||
self.page = paginator.page(page_number)
|
||||
except InvalidPage as exc:
|
||||
|
||||
# msg = self.invalid_page_message.format(
|
||||
# page_number=page_number, message=str(exc)
|
||||
# )
|
||||
# raise NotFound(msg)
|
||||
empty = False
|
||||
pass
|
||||
|
||||
if paginator.num_pages > 1 and self.template is not None:
|
||||
# The browsable API should display pagination controls.
|
||||
@@ -58,15 +56,15 @@ class CustomPagination(PageNumberPagination):
|
||||
self.page = []
|
||||
|
||||
return list(self.page)
|
||||
|
||||
def get_paginated_response(self, data):
|
||||
code = 2000
|
||||
msg = 'success'
|
||||
page =int(self.get_page_number(self.request, paginator)) or 1
|
||||
total=self.page.paginator.count if self.page else 0
|
||||
limit= int(self.get_page_size(self.request)) or 10
|
||||
is_next= self.page.has_next()
|
||||
is_previous= self.page.has_previous()
|
||||
data=data
|
||||
page = int(self.get_page_number(self.request, paginator)) or 1
|
||||
total = self.page.paginator.count if self.page else 0
|
||||
limit = int(self.get_page_size(self.request)) or 10
|
||||
is_next = self.page.has_next() if self.page else False
|
||||
is_previous = self.page.has_previous() if self.page else False
|
||||
|
||||
if not data:
|
||||
code = 2000
|
||||
|
||||
Reference in New Issue
Block a user