fastgenerateapi 1.2.14__tar.gz → 1.2.16__tar.gz
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/PKG-INFO +1 -1
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/__version__.py +1 -1
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/base_view.py +27 -11
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/get_all_view.py +33 -17
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py +0 -1
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/common_function.py +1 -1
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/app_settings.py +3 -2
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi.egg-info/PKG-INFO +1 -1
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/LICENSE +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/README.md +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/api_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/create_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/delete_filter_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/delete_tree_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/delete_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/get_one_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/get_relation_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/get_tree_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/base_mixin.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/get_mixin.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/response_mixin.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/save_mixin.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/tool_mixin.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/docx_util.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/file_util.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/pdf_util.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/zip_util.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/switch_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/update_relation_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/update_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/cache/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/cache/cache_decorator.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/cache/key_builder.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/channel/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/channel/connection_manager.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/channel/consumer.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/channel/websocket_view.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/filter_controller.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/router_controller.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/rpc_controller.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/search_controller.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/ws_controller.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/data_type/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/data_type/data_type.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/data_type/mysql_data_type.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/deps/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/deps/filter_params_deps.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/deps/tree_params_deps.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/example/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/example/models.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/example/routers.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/example/schemas.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/example/views.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/all.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/param_utils.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/response_utils.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/tortoise_utils.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/model/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/model/base_model.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/aes_field.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/enum_field.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/pk_field.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/pwd_field.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/soft_delete_field.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/validator.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/base_model.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/base_settings.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/json_encoders.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/common_schema_factory.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/create_schema_factory.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/filter_schema_factory.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/get_all_schema_factory.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/get_one_schema_factory.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/get_relation_schema_factory.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/get_tree_schema_factory.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/response_factory.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/update_schema_factory.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/all_settings.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/db_settings.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/etcd_settings.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/file_settings.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/jwt_settings.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/otlp_settings.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/redis_settings.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/sms_settings.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/system_settings.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/aes.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/auto_discover.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/exception.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/file_utils.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/pwd_utils.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/ramdom_utils.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/snowflake.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/str_util.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/utils/swagger_to_js.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/validator/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/validator/validator.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi.egg-info/SOURCES.txt +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi.egg-info/dependency_links.txt +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi.egg-info/top_level.txt +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/script/__init__.py +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/setup.cfg +0 -0
- {fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/setup.py +0 -0
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import time
|
|
2
2
|
import uuid
|
|
3
3
|
from copy import copy
|
|
4
|
-
from typing import Optional, Type, List, Union, Sequence, Dict
|
|
4
|
+
from typing import Optional, Type, List, Union, Sequence, Dict, Any
|
|
5
5
|
from urllib.parse import parse_qs
|
|
6
6
|
|
|
7
7
|
from fastapi import params
|
|
8
|
+
from pydantic._internal._model_construction import ModelMetaclass
|
|
8
9
|
from tortoise.queryset import QuerySet
|
|
9
10
|
|
|
10
11
|
from pydantic import create_model, BaseModel
|
|
@@ -98,8 +99,10 @@ class BaseView(BaseMixin, ResponseMixin, ToolMixin, DBModelMixin):
|
|
|
98
99
|
|
|
99
100
|
@staticmethod
|
|
100
101
|
async def setattr_model(model: Model, prefetch_related_fields, *args, **kwargs) -> Model:
|
|
102
|
+
if not prefetch_related_fields:
|
|
103
|
+
return model
|
|
101
104
|
for key, value_list in prefetch_related_fields.items():
|
|
102
|
-
if value_list is None:
|
|
105
|
+
if value_list is None or isinstance(value_list, ModelMetaclass):
|
|
103
106
|
continue
|
|
104
107
|
if isinstance(value_list, str):
|
|
105
108
|
value_list = [value_list]
|
|
@@ -113,9 +116,9 @@ class BaseView(BaseMixin, ResponseMixin, ToolMixin, DBModelMixin):
|
|
|
113
116
|
key = key.replace("__", "_")
|
|
114
117
|
for value in value_list:
|
|
115
118
|
if type(value) == str:
|
|
116
|
-
setattr(model, key + "_" + value, getattr(attr_model, value, None)
|
|
119
|
+
setattr(model, key + "_" + value, getattr(attr_model, value, None))
|
|
117
120
|
elif type(value) == tuple and len(value) == 2:
|
|
118
|
-
setattr(model, value[1], getattr(attr_model, value[0], None)
|
|
121
|
+
setattr(model, value[1], getattr(attr_model, value[0], None))
|
|
119
122
|
return model
|
|
120
123
|
|
|
121
124
|
@staticmethod
|
|
@@ -229,6 +232,25 @@ class BaseView(BaseMixin, ResponseMixin, ToolMixin, DBModelMixin):
|
|
|
229
232
|
result[key] = val[0]
|
|
230
233
|
return result
|
|
231
234
|
|
|
235
|
+
def _get_extra_related_schema(self):
|
|
236
|
+
"""
|
|
237
|
+
prefetch_related_fields 转换为 extra_include 的参数
|
|
238
|
+
:return:
|
|
239
|
+
"""
|
|
240
|
+
schema_include = []
|
|
241
|
+
for key, value in self.prefetch_related_fields.items():
|
|
242
|
+
if not value:
|
|
243
|
+
continue
|
|
244
|
+
if isinstance(value, ModelMetaclass):
|
|
245
|
+
schema_include.append((key, Optional[value]))
|
|
246
|
+
elif type(value) in [list, tuple, set]:
|
|
247
|
+
for val in value:
|
|
248
|
+
val_str = val
|
|
249
|
+
if type(val) in [list, tuple, set]:
|
|
250
|
+
val_str = val[0]
|
|
251
|
+
schema_include.append(key + "__" + val_str)
|
|
252
|
+
return schema_include
|
|
253
|
+
|
|
232
254
|
def get_response_schema(self):
|
|
233
255
|
"""
|
|
234
256
|
如果response_schema不存在,则生成
|
|
@@ -237,13 +259,7 @@ class BaseView(BaseMixin, ResponseMixin, ToolMixin, DBModelMixin):
|
|
|
237
259
|
if not self.response_schema:
|
|
238
260
|
get_one_schema_include = []
|
|
239
261
|
if self.is_with_prefetch and self.prefetch_related_fields:
|
|
240
|
-
|
|
241
|
-
if value and type(value) in [list, tuple, set]:
|
|
242
|
-
for val in value:
|
|
243
|
-
val_str = val
|
|
244
|
-
if type(val) in [list, tuple, set]:
|
|
245
|
-
val_str = val[0]
|
|
246
|
-
get_one_schema_include.append(key + "__" + val_str)
|
|
262
|
+
get_one_schema_include = self._get_extra_related_schema()
|
|
247
263
|
self.response_schema = get_one_schema_factory(self.model_class, extra_include=get_one_schema_include)
|
|
248
264
|
|
|
249
265
|
return self.response_schema
|
|
@@ -7,6 +7,7 @@ from fastapi.types import DecoratedCallable
|
|
|
7
7
|
from fastapi_cache import JsonCoder
|
|
8
8
|
from fastapi_cache.decorator import cache
|
|
9
9
|
from pydantic import BaseModel
|
|
10
|
+
from starlette._utils import is_async_callable
|
|
10
11
|
from starlette.requests import Request
|
|
11
12
|
from starlette.responses import JSONResponse
|
|
12
13
|
from tortoise import Model
|
|
@@ -87,6 +88,12 @@ class GetAllView(BaseView, GetMixin):
|
|
|
87
88
|
"""
|
|
88
89
|
return queryset
|
|
89
90
|
|
|
91
|
+
async def set_get_all_model_list(self, model_list: List[Model], *args, **kwargs) -> List[Model]:
|
|
92
|
+
"""
|
|
93
|
+
对于查询的model,展示数据处理
|
|
94
|
+
"""
|
|
95
|
+
return model_list
|
|
96
|
+
|
|
90
97
|
async def set_get_all_model(self, model: Model, *args, **kwargs) -> Model:
|
|
91
98
|
"""
|
|
92
99
|
对于查询的model,展示数据处理
|
|
@@ -98,15 +105,17 @@ class GetAllView(BaseView, GetMixin):
|
|
|
98
105
|
queryset: QuerySet,
|
|
99
106
|
schema: Type[BaseModel] = None,
|
|
100
107
|
paginator: Optional[PagePydantic] = PagePydantic(),
|
|
101
|
-
|
|
108
|
+
model_handler: Optional[Callable] = None,
|
|
109
|
+
model_handler_list: Optional[List[Callable]] = None,
|
|
102
110
|
*args, **kwargs,
|
|
103
111
|
):
|
|
104
112
|
"""
|
|
105
113
|
通用分页函数,获取对应的数据,和分页统计
|
|
106
114
|
:param queryset:
|
|
107
|
-
:param paginator:
|
|
108
115
|
:param schema:
|
|
109
|
-
:param
|
|
116
|
+
:param paginator:
|
|
117
|
+
:param model_handler:
|
|
118
|
+
:param model_handler_list:
|
|
110
119
|
:param args:
|
|
111
120
|
:param kwargs:
|
|
112
121
|
:return:
|
|
@@ -119,20 +128,33 @@ class GetAllView(BaseView, GetMixin):
|
|
|
119
128
|
queryset = queryset.offset(cast(int, (paginator.page - 1) * paginator.page_size))
|
|
120
129
|
model_list = await queryset.limit(paginator.page_size)
|
|
121
130
|
|
|
131
|
+
if model_handler:
|
|
132
|
+
if is_async_callable(model_handler):
|
|
133
|
+
model_list = await model_handler(model_list, paginator=paginator, *args, **kwargs)
|
|
134
|
+
else:
|
|
135
|
+
model_list = model_handler(model_list, paginator=paginator, *args, **kwargs)
|
|
136
|
+
if not schema:
|
|
137
|
+
model_list = await self.set_get_all_model_list(model_list, paginator=paginator, *args, **kwargs)
|
|
138
|
+
|
|
122
139
|
data_list = []
|
|
123
140
|
for model in model_list:
|
|
124
|
-
await self.setattr_model(model
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
141
|
+
await self.setattr_model(model,*args, **kwargs)
|
|
142
|
+
if model_handler_list:
|
|
143
|
+
for i_model_handler in model_handler_list:
|
|
144
|
+
if is_async_callable(i_model_handler):
|
|
145
|
+
model = await i_model_handler(model, paginator=paginator,*args, **kwargs)
|
|
146
|
+
else:
|
|
147
|
+
model = i_model_handler(model, paginator=paginator,*args, **kwargs)
|
|
128
148
|
if schema:
|
|
129
149
|
data_list.append(schema.model_validate(model))
|
|
130
150
|
else:
|
|
151
|
+
model = await self.set_get_model(model, paginator=paginator,*args, **kwargs)
|
|
152
|
+
model = await self.set_get_all_model(model, paginator=paginator, *args, **kwargs)
|
|
131
153
|
data_list.append(self.get_all_schema.model_validate(model))
|
|
132
154
|
|
|
133
155
|
return data_list, count
|
|
134
156
|
|
|
135
|
-
def
|
|
157
|
+
def get_page_schema_func(self, data_list, count = None, schema: Type[BaseModel] = None, paginator: Optional[PagePydantic] = None, *args, **kwargs):
|
|
136
158
|
"""
|
|
137
159
|
返回列表结果
|
|
138
160
|
:param data_list:
|
|
@@ -169,7 +191,7 @@ class GetAllView(BaseView, GetMixin):
|
|
|
169
191
|
:return:
|
|
170
192
|
"""
|
|
171
193
|
data_list, count = await self.get_queryset_data(queryset=queryset,*args, **kwargs)
|
|
172
|
-
res = self.
|
|
194
|
+
res = self.get_page_schema_func(data_list, count, *args, **kwargs)
|
|
173
195
|
return res
|
|
174
196
|
|
|
175
197
|
def _get_all_decorator(self, *args: Any, **kwargs: Any) -> DecoratedCallable:
|
|
@@ -212,20 +234,14 @@ class GetAllView(BaseView, GetMixin):
|
|
|
212
234
|
if not self.get_all_schema:
|
|
213
235
|
get_all_schema_include = []
|
|
214
236
|
if self.prefetch_related_fields:
|
|
215
|
-
|
|
216
|
-
if value and type(value) in [list, tuple, set]:
|
|
217
|
-
for val in value:
|
|
218
|
-
val_str = val
|
|
219
|
-
if type(val) in [list, tuple, set]:
|
|
220
|
-
val_str = val[0]
|
|
221
|
-
get_all_schema_include.append(key + "__" + val_str)
|
|
237
|
+
get_all_schema_include = self._get_extra_related_schema()
|
|
222
238
|
if hasattr_get_all_schema(self.model_class) or get_all_schema_include:
|
|
223
239
|
self.get_all_schema = get_all_schema_factory(self.model_class, extra_include=get_all_schema_include)
|
|
224
240
|
else:
|
|
225
241
|
self.get_all_schema = self.get_response_schema()
|
|
226
242
|
self.get_all_page_schema = get_page_schema_factory(self.get_all_schema)
|
|
227
243
|
self.get_all_list_schema = get_list_schema_factory(self.get_all_schema)
|
|
228
|
-
self.get_all_response_schema_factory = response_factory(self.
|
|
244
|
+
self.get_all_response_schema_factory = response_factory(self.get_all_page_schema, name="GetPage")
|
|
229
245
|
if not self.get_all_summary:
|
|
230
246
|
doc = self.get_all.__doc__
|
|
231
247
|
self.get_all_summary = doc.strip().split("\n")[0] if doc else "Get All"
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py
RENAMED
|
@@ -21,7 +21,6 @@ from fastgenerateapi import BaseModel, BaseView
|
|
|
21
21
|
from fastgenerateapi.api_view.mixin.dbmodel_mixin import DBModelMixin
|
|
22
22
|
from fastgenerateapi.api_view.mixin.response_mixin import ResponseMixin
|
|
23
23
|
from fastgenerateapi.api_view.mixin.tool_mixin import ToolMixin
|
|
24
|
-
from fastgenerateapi.schemas_factory.create_schema_factory import create_schema_factory
|
|
25
24
|
|
|
26
25
|
|
|
27
26
|
class XlsxUtil:
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/common_function.py
RENAMED
|
@@ -103,7 +103,7 @@ def get_dict_from_pydanticmeta(model_class: Type[Model], data: Union[list, tuple
|
|
|
103
103
|
if settings.app_settings.SCHEMAS_UNDERLINE_WHETHER_DOUBLE_TO_SINGLE:
|
|
104
104
|
key_field = key_field.replace("__", "_")
|
|
105
105
|
fields_info.setdefault(key_field, (field_type, field_info))
|
|
106
|
-
elif isinstance(field, tuple):
|
|
106
|
+
elif isinstance(field, (tuple, list)):
|
|
107
107
|
key_field = field[0]
|
|
108
108
|
field_type, field_info = get_field_info_from_model_class(model_class, field[0])
|
|
109
109
|
if len(field) == 2:
|
|
@@ -8,8 +8,9 @@ from fastgenerateapi.pydantic_utils.base_settings import BaseSettings
|
|
|
8
8
|
|
|
9
9
|
class AppSettings(BaseSettings):
|
|
10
10
|
# ####################################### 请求参数相关 ###############################################
|
|
11
|
-
# 字段配置
|
|
12
|
-
#
|
|
11
|
+
# 字段配置
|
|
12
|
+
# 【驼峰格式】 推荐<fastgenerateapi.alias_to_camel> 可选<pydantic.alias_generators.to_snake><会忽略双下划线转单下划线配置>
|
|
13
|
+
# 【下划线】<pydantic.alias_generators.to_snake>
|
|
13
14
|
ALIAS_GENERATOR: Optional[str] = Field(default=None, description="序列化参数命名方法路径")
|
|
14
15
|
# 分页对应字段以及配置默认值
|
|
15
16
|
WHETHER_PAGE_FIELD: Optional[str] = Field(default="no_page", description="判断是否分页字段")
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/delete_filter_view.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/delete_tree_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/get_relation_view.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/__init__.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/base_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/get_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/response_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/save_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/tool_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/__init__.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/docx_util.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/file_util.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/pdf_util.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/mixin/utils/zip_util.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/api_view/update_relation_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/channel/connection_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/filter_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/router_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/rpc_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/search_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/controller/ws_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/data_type/mysql_data_type.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/deps/filter_params_deps.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/param_utils.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/response_utils.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/fastapi_utils/tortoise_utils.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/my_fields/soft_delete_field.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/__init__.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/base_model.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/base_settings.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/pydantic_utils/json_encoders.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/schemas_factory/__init__.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/redis_settings.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi/settings/system_settings.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.14 → fastgenerateapi-1.2.16}/fastgenerateapi.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|