fastgenerateapi 1.2.20__tar.gz → 1.2.21__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.20 → fastgenerateapi-1.2.21}/PKG-INFO +1 -1
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/__version__.py +1 -1
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/get_one_view.py +10 -4
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py +18 -16
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi.egg-info/PKG-INFO +1 -1
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/LICENSE +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/README.md +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/api_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/base_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/create_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/delete_filter_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/delete_tree_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/delete_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/get_all_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/get_relation_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/get_tree_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/base_mixin.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/get_mixin.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/response_mixin.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/save_mixin.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/tool_mixin.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/docx_util.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/file_util.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/pdf_util.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/zip_util.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/switch_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/update_relation_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/update_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/cache/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/cache/cache_decorator.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/cache/key_builder.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/channel/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/channel/connection_manager.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/channel/consumer.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/channel/websocket_view.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/filter_controller.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/router_controller.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/rpc_controller.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/search_controller.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/ws_controller.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/data_type/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/data_type/data_type.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/data_type/mysql_data_type.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/data_type/tortoise_type.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/deps/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/deps/filter_params_deps.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/deps/tree_params_deps.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/example/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/example/models.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/example/routers.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/example/schemas.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/example/views.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/fastapi_utils/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/fastapi_utils/all.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/fastapi_utils/param_utils.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/fastapi_utils/response_utils.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/fastapi_utils/tortoise_utils.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/model/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/model/base_model.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/my_fields/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/my_fields/aes_field.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/my_fields/enum_field.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/my_fields/pk_field.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/my_fields/pwd_field.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/my_fields/soft_delete_field.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/my_fields/validator.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/pydantic_utils/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/pydantic_utils/base_model.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/pydantic_utils/base_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/pydantic_utils/json_encoders.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/common_function.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/common_schema_factory.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/create_schema_factory.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/filter_schema_factory.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/get_all_schema_factory.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/get_one_schema_factory.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/get_relation_schema_factory.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/get_tree_schema_factory.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/response_factory.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/update_schema_factory.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/all_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/app_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/db_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/etcd_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/file_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/jwt_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/otlp_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/redis_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/sms_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/system_settings.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/utils/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/utils/aes.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/utils/auto_discover.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/utils/exception.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/utils/file_utils.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/utils/pwd_utils.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/utils/ramdom_utils.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/utils/snowflake.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/utils/str_util.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/utils/swagger_to_js.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/validator/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/validator/validator.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi.egg-info/SOURCES.txt +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi.egg-info/dependency_links.txt +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi.egg-info/top_level.txt +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/script/__init__.py +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/setup.cfg +0 -0
- {fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/setup.py +0 -0
|
@@ -9,14 +9,14 @@ from fastapi_cache.decorator import cache
|
|
|
9
9
|
from pydantic import BaseModel
|
|
10
10
|
from starlette.requests import Request
|
|
11
11
|
from starlette.responses import JSONResponse
|
|
12
|
-
from tortoise import Model
|
|
13
12
|
|
|
14
13
|
from fastgenerateapi.api_view.base_view import BaseView
|
|
15
14
|
from fastgenerateapi.api_view.mixin.get_mixin import GetMixin
|
|
16
15
|
from fastgenerateapi.cache.cache_decorator import get_one_cache_decorator
|
|
17
16
|
from fastgenerateapi.cache.key_builder import generate_key_builder
|
|
18
17
|
from fastgenerateapi.data_type.data_type import CALLABLE, DEPENDENCIES
|
|
19
|
-
from fastgenerateapi.
|
|
18
|
+
from fastgenerateapi.data_type.tortoise_type import T_Model
|
|
19
|
+
from fastgenerateapi.schemas_factory import response_factory
|
|
20
20
|
from fastgenerateapi.settings.all_settings import settings
|
|
21
21
|
from fastgenerateapi.utils.exception import NOT_FOUND
|
|
22
22
|
|
|
@@ -44,10 +44,16 @@ class GetOneView(BaseView, GetMixin):
|
|
|
44
44
|
if self.is_with_prefetch:
|
|
45
45
|
await self.setattr_model(model, prefetch_related_fields=self.prefetch_related_fields, *args, **kwargs)
|
|
46
46
|
|
|
47
|
-
# await self.setattr_model_rpc(self.rpc_class, model, self.rpc_param)
|
|
48
47
|
model = await self.set_get_model(model, *args, **kwargs)
|
|
48
|
+
model = await self.set_get_one_model(model, *args, **kwargs)
|
|
49
49
|
|
|
50
|
-
return self.get_one_schema.
|
|
50
|
+
return self.get_one_schema.model_validate(model)
|
|
51
|
+
|
|
52
|
+
async def set_get_one_model(self, model: T_Model, *args, **kwargs) -> T_Model:
|
|
53
|
+
"""
|
|
54
|
+
对于查询的model,展示数据处理
|
|
55
|
+
"""
|
|
56
|
+
return model
|
|
51
57
|
|
|
52
58
|
def _get_one_decorator(self, *args: Any, **kwargs: Any) -> DecoratedCallable:
|
|
53
59
|
@get_one_cache_decorator(cache(expire=settings.app_settings.CACHE_GET_ONE_SECONDS, coder=JsonCoder, key_builder=generate_key_builder))
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py
RENAMED
|
@@ -36,14 +36,14 @@ class XlsxUtil:
|
|
|
36
36
|
thin_border = Border(top=Side('thin'),left=Side('thin'),right=Side('thin'),bottom=Side('thin'))
|
|
37
37
|
|
|
38
38
|
@classmethod
|
|
39
|
-
def write_headers(cls, sh: Worksheet,
|
|
39
|
+
def write_headers(cls, sh: Worksheet, xlsx_headers: List[str]) -> List[int]:
|
|
40
40
|
"""
|
|
41
41
|
写入第一行信息
|
|
42
42
|
:return:
|
|
43
43
|
"""
|
|
44
44
|
col_width_list = []
|
|
45
45
|
sh.row_dimensions[1].height = 26
|
|
46
|
-
for col, header in enumerate(
|
|
46
|
+
for col, header in enumerate(xlsx_headers, 1):
|
|
47
47
|
sh.cell(1, col).value = header
|
|
48
48
|
sh.cell(1, col).alignment = XlsxUtil.default_align
|
|
49
49
|
sh.cell(1, col).fill = XlsxUtil.default_fill
|
|
@@ -85,7 +85,7 @@ class XlsxUtil:
|
|
|
85
85
|
|
|
86
86
|
@staticmethod
|
|
87
87
|
async def export_xlsx(
|
|
88
|
-
|
|
88
|
+
xlsx_headers: List[str],
|
|
89
89
|
model_list: List[Model],
|
|
90
90
|
fields: List[str],
|
|
91
91
|
index: Optional[bool] = False,
|
|
@@ -101,7 +101,7 @@ class XlsxUtil:
|
|
|
101
101
|
) -> StreamingResponse:
|
|
102
102
|
"""
|
|
103
103
|
导出excel文件
|
|
104
|
-
:param
|
|
104
|
+
:param xlsx_headers: 第一行表头
|
|
105
105
|
:param model_list: 模型列表
|
|
106
106
|
:param fields: 字段列表
|
|
107
107
|
:param index: 是否导出序号字段
|
|
@@ -130,7 +130,7 @@ class XlsxUtil:
|
|
|
130
130
|
sh = wb.active
|
|
131
131
|
sh.title = sheet or (f'{model_class._meta.table_description}' if model_class else "sheet1")
|
|
132
132
|
|
|
133
|
-
col_width_list = XlsxUtil.write_headers(sh,
|
|
133
|
+
col_width_list = XlsxUtil.write_headers(sh, xlsx_headers)
|
|
134
134
|
|
|
135
135
|
if model_handler:
|
|
136
136
|
if is_async_callable(model_handler):
|
|
@@ -159,7 +159,7 @@ class XlsxUtil:
|
|
|
159
159
|
info = handler(info, *args, **kwargs)
|
|
160
160
|
write(sh, row, col, info)
|
|
161
161
|
|
|
162
|
-
XlsxUtil.adaptive_format(sh, col_width_list, len(
|
|
162
|
+
XlsxUtil.adaptive_format(sh, col_width_list, len(xlsx_headers))
|
|
163
163
|
finally:
|
|
164
164
|
if file_save_path:
|
|
165
165
|
wb.save(file_save_path)
|
|
@@ -172,7 +172,7 @@ class XlsxUtil:
|
|
|
172
172
|
|
|
173
173
|
@staticmethod
|
|
174
174
|
async def excel_model(
|
|
175
|
-
|
|
175
|
+
xlsx_headers: List[str] = None,
|
|
176
176
|
sheet: Optional[str] = None,
|
|
177
177
|
model_class: Optional[Model] = None,
|
|
178
178
|
filename: Optional[str] = '导入模板.xlsx',
|
|
@@ -181,7 +181,7 @@ class XlsxUtil:
|
|
|
181
181
|
) -> Union[FileResponse, StreamingResponse]:
|
|
182
182
|
"""
|
|
183
183
|
导出excel模板
|
|
184
|
-
:param
|
|
184
|
+
:param xlsx_headers: 第一行表头
|
|
185
185
|
:param sheet: sheet名称
|
|
186
186
|
:param model_class: 当无title时,使用表名称
|
|
187
187
|
:param filename: 导出文件名
|
|
@@ -207,9 +207,9 @@ class XlsxUtil:
|
|
|
207
207
|
sh = wb.active
|
|
208
208
|
sh.title = sheet or (f'{model_class._meta.table_description}' if model_class else "sheet1")
|
|
209
209
|
|
|
210
|
-
col_width_list = XlsxUtil.write_headers(sh,
|
|
210
|
+
col_width_list = XlsxUtil.write_headers(sh, xlsx_headers)
|
|
211
211
|
|
|
212
|
-
XlsxUtil.adaptive_format(sh, col_width_list, len(
|
|
212
|
+
XlsxUtil.adaptive_format(sh, col_width_list, len(xlsx_headers))
|
|
213
213
|
finally:
|
|
214
214
|
bytes_io = io.BytesIO()
|
|
215
215
|
wb.save(bytes_io)
|
|
@@ -226,13 +226,15 @@ class XlsxUtil:
|
|
|
226
226
|
if isinstance(row_value, int):
|
|
227
227
|
row_value = str(row_value)
|
|
228
228
|
row_data[fields[i]] = row_value
|
|
229
|
+
else:
|
|
230
|
+
row_data[fields[i]] = None
|
|
229
231
|
|
|
230
232
|
return row_data
|
|
231
233
|
|
|
232
234
|
@staticmethod
|
|
233
235
|
async def get_import_xlsx_data(
|
|
234
236
|
file: UploadFile,
|
|
235
|
-
|
|
237
|
+
xlsx_headers: List[str],
|
|
236
238
|
fields: List[str],
|
|
237
239
|
sheet: Optional[str] = None,
|
|
238
240
|
) -> List[dict]:
|
|
@@ -253,9 +255,9 @@ class XlsxUtil:
|
|
|
253
255
|
for msg in header_row:
|
|
254
256
|
header_list.append(str(msg.value).replace(" ", ''))
|
|
255
257
|
|
|
256
|
-
if len(header_list) != len(
|
|
258
|
+
if len(header_list) != len(xlsx_headers):
|
|
257
259
|
return ResponseMixin.error(msg="文件首行长度校验错误")
|
|
258
|
-
if not operator.eq(header_list,
|
|
260
|
+
if not operator.eq(header_list, xlsx_headers):
|
|
259
261
|
return ResponseMixin.error(msg="文件首行内容校验错误")
|
|
260
262
|
|
|
261
263
|
for row in range(2, ws.max_row + 1):
|
|
@@ -273,7 +275,7 @@ class XlsxUtil:
|
|
|
273
275
|
async def import_xlsx(
|
|
274
276
|
cls,
|
|
275
277
|
file: UploadFile,
|
|
276
|
-
|
|
278
|
+
xlsx_headers: List[str],
|
|
277
279
|
fields: List[str],
|
|
278
280
|
model_class: Optional[Type[Model]],
|
|
279
281
|
create_schema: Optional[Type[BaseModel]],
|
|
@@ -286,7 +288,7 @@ class XlsxUtil:
|
|
|
286
288
|
"""
|
|
287
289
|
导入只能用于一张表
|
|
288
290
|
:param file:
|
|
289
|
-
:param
|
|
291
|
+
:param xlsx_headers: 请求文件首行文字校验
|
|
290
292
|
:param fields: 值对应的字段
|
|
291
293
|
:param model_class: 用于创建数据
|
|
292
294
|
:param create_schema: 用于校验必填字段
|
|
@@ -295,7 +297,7 @@ class XlsxUtil:
|
|
|
295
297
|
:param sheet: sheet名称
|
|
296
298
|
:return:
|
|
297
299
|
"""
|
|
298
|
-
file_data_list = await cls.get_import_xlsx_data(file,
|
|
300
|
+
file_data_list = await cls.get_import_xlsx_data(file, xlsx_headers, fields, sheet)
|
|
299
301
|
if not file_data_list:
|
|
300
302
|
return ResponseMixin.error(msg="导入数据不能为空")
|
|
301
303
|
create_list = []
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/delete_filter_view.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/delete_tree_view.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/get_relation_view.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/__init__.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/base_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/get_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/response_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/save_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/tool_mixin.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/__init__.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/docx_util.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/file_util.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/pdf_util.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/api_view/mixin/utils/zip_util.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/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.20 → fastgenerateapi-1.2.21}/fastgenerateapi/channel/connection_manager.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/filter_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/router_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/rpc_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/search_controller.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/controller/ws_controller.py
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/data_type/mysql_data_type.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/data_type/tortoise_type.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/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.20 → fastgenerateapi-1.2.21}/fastgenerateapi/fastapi_utils/param_utils.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/fastapi_utils/response_utils.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/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.20 → fastgenerateapi-1.2.21}/fastgenerateapi/my_fields/soft_delete_field.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/pydantic_utils/__init__.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/pydantic_utils/base_model.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/pydantic_utils/base_settings.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/pydantic_utils/json_encoders.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/__init__.py
RENAMED
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/schemas_factory/common_function.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
|
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/fastgenerateapi/settings/redis_settings.py
RENAMED
|
File without changes
|
|
File without changes
|
{fastgenerateapi-1.2.20 → fastgenerateapi-1.2.21}/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.20 → fastgenerateapi-1.2.21}/fastgenerateapi.egg-info/dependency_links.txt
RENAMED
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|