fastgenerateapi 1.2.2__tar.gz → 1.2.4__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.
Files changed (115) hide show
  1. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/PKG-INFO +3 -3
  2. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/README.md +2 -2
  3. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/__version__.py +1 -1
  4. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/update_view.py +3 -3
  5. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/common_function.py +5 -2
  6. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/all_settings.py +40 -39
  7. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/app_settings.py +1 -0
  8. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi.egg-info/PKG-INFO +3 -3
  9. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/LICENSE +0 -0
  10. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/__init__.py +0 -0
  11. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/__init__.py +0 -0
  12. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/api_view.py +0 -0
  13. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/base_view.py +0 -0
  14. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/create_view.py +0 -0
  15. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/delete_filter_view.py +0 -0
  16. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/delete_tree_view.py +0 -0
  17. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/delete_view.py +0 -0
  18. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/get_all_view.py +0 -0
  19. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/get_one_view.py +0 -0
  20. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/get_relation_view.py +0 -0
  21. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/get_tree_view.py +0 -0
  22. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/__init__.py +0 -0
  23. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/base_mixin.py +0 -0
  24. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/dbmodel_mixin.py +0 -0
  25. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/get_mixin.py +0 -0
  26. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/response_mixin.py +0 -0
  27. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/save_mixin.py +0 -0
  28. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/tool_mixin.py +0 -0
  29. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/utils/__init__.py +0 -0
  30. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/utils/docx_util.py +0 -0
  31. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/utils/file_util.py +0 -0
  32. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/utils/pdf_util.py +0 -0
  33. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/utils/xlsx_util.py +0 -0
  34. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/mixin/utils/zip_util.py +0 -0
  35. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/sql_get_view.py +0 -0
  36. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/switch_view.py +0 -0
  37. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/api_view/update_relation_view.py +0 -0
  38. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/cache/__init__.py +0 -0
  39. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/cache/cache_decorator.py +0 -0
  40. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/cache/key_builder.py +0 -0
  41. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/channel/__init__.py +0 -0
  42. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/channel/connection_manager.py +0 -0
  43. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/channel/consumer.py +0 -0
  44. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/channel/websocket_view.py +0 -0
  45. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/controller/__init__.py +0 -0
  46. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/controller/filter_controller.py +0 -0
  47. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/controller/router_controller.py +0 -0
  48. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/controller/rpc_controller.py +0 -0
  49. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/controller/search_controller.py +0 -0
  50. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/controller/ws_controller.py +0 -0
  51. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/data_type/__init__.py +0 -0
  52. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/data_type/data_type.py +0 -0
  53. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/data_type/mysql_data_type.py +0 -0
  54. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/deps/__init__.py +0 -0
  55. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/deps/filter_params_deps.py +0 -0
  56. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/deps/paginator_deps.py +0 -0
  57. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/deps/tree_params_deps.py +0 -0
  58. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/example/__init__.py +0 -0
  59. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/example/models.py +0 -0
  60. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/example/routers.py +0 -0
  61. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/example/schemas.py +0 -0
  62. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/example/views.py +0 -0
  63. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/fastapi_utils/__init__.py +0 -0
  64. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/fastapi_utils/all.py +0 -0
  65. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/fastapi_utils/param_utils.py +0 -0
  66. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/fastapi_utils/response_utils.py +0 -0
  67. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/model/__init__.py +0 -0
  68. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/model/base_model.py +0 -0
  69. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/my_fields/__init__.py +0 -0
  70. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/my_fields/aes_field.py +0 -0
  71. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/my_fields/enum_field.py +0 -0
  72. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/my_fields/pk_field.py +0 -0
  73. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/my_fields/pwd_field.py +0 -0
  74. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/my_fields/soft_delete_field.py +0 -0
  75. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/my_fields/validator.py +0 -0
  76. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/pydantic_utils/__init__.py +0 -0
  77. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/pydantic_utils/base_model.py +0 -0
  78. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/pydantic_utils/base_settings.py +0 -0
  79. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/pydantic_utils/json_encoders.py +0 -0
  80. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/__init__.py +0 -0
  81. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/common_schema_factory.py +0 -0
  82. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/create_schema_factory.py +0 -0
  83. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/filter_schema_factory.py +0 -0
  84. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/get_all_schema_factory.py +0 -0
  85. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/get_one_schema_factory.py +0 -0
  86. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/get_relation_schema_factory.py +0 -0
  87. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/get_tree_schema_factory.py +0 -0
  88. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/response_factory.py +0 -0
  89. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/sql_get_all_schema_factory.py +0 -0
  90. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/schemas_factory/update_schema_factory.py +0 -0
  91. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/__init__.py +0 -0
  92. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/db_settings.py +0 -0
  93. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/etcd_settings.py +0 -0
  94. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/file_settings.py +0 -0
  95. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/jwt_settings.py +0 -0
  96. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/otlp_settings.py +0 -0
  97. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/redis_settings.py +0 -0
  98. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/sms_settings.py +0 -0
  99. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/settings/system_settings.py +0 -0
  100. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/utils/__init__.py +0 -0
  101. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/utils/aes.py +0 -0
  102. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/utils/auto_discover.py +0 -0
  103. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/utils/exception.py +0 -0
  104. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/utils/file_utils.py +0 -0
  105. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/utils/pwd_utils.py +0 -0
  106. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/utils/ramdom_utils.py +0 -0
  107. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/utils/snowflake.py +0 -0
  108. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/utils/str_util.py +0 -0
  109. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi/utils/swagger_to_js.py +0 -0
  110. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi.egg-info/SOURCES.txt +0 -0
  111. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi.egg-info/dependency_links.txt +0 -0
  112. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/fastgenerateapi.egg-info/top_level.txt +0 -0
  113. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/script/__init__.py +0 -0
  114. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/setup.cfg +0 -0
  115. {fastgenerateapi-1.2.2 → fastgenerateapi-1.2.4}/setup.py +0 -0
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.2.2
3
+ Version: 1.2.4
4
4
  Summary: FastAPIView Class View
5
5
  Author: ShiLiang
6
6
  Author-email: 2509144896@qq.com
@@ -94,7 +94,7 @@ uvicorn.run(app)
94
94
  - get_one_include, get_one_exclude
95
95
  - 与include同时生效,无include自动包含数据库模型搜友字段
96
96
  - 可添加跨表字段,自动生成校验和文档
97
- - 其他字段: ("test", Optioanl[str], FieldInfo(..., description="文档描述"))
97
+ - 其他字段: ("test", Optional[str], FieldInfo(..., description="文档描述"))
98
98
  - get_all_include, get_all_exclude
99
99
  - create_include, create_exclude
100
100
  - update_include, update_exclude
@@ -131,7 +131,7 @@ class XxxView(APIView):
131
131
  文档Summary注释
132
132
  生成 get方法,路由为 前缀/user_list
133
133
  """
134
- return xxx
134
+ return self.success(data={"list": []})
135
135
  ```
136
136
 
137
137
 
@@ -76,7 +76,7 @@ uvicorn.run(app)
76
76
  - get_one_include, get_one_exclude
77
77
  - 与include同时生效,无include自动包含数据库模型搜友字段
78
78
  - 可添加跨表字段,自动生成校验和文档
79
- - 其他字段: ("test", Optioanl[str], FieldInfo(..., description="文档描述"))
79
+ - 其他字段: ("test", Optional[str], FieldInfo(..., description="文档描述"))
80
80
  - get_all_include, get_all_exclude
81
81
  - create_include, create_exclude
82
82
  - update_include, update_exclude
@@ -113,7 +113,7 @@ class XxxView(APIView):
113
113
  文档Summary注释
114
114
  生成 get方法,路由为 前缀/user_list
115
115
  """
116
- return xxx
116
+ return self.success(data={"list": []})
117
117
  ```
118
118
 
119
119
 
@@ -8,7 +8,7 @@
8
8
  # d8888P
9
9
 
10
10
 
11
- VERSION = (1, 2, 2)
11
+ VERSION = (1, 2, 4)
12
12
 
13
13
  __version__ = '.'.join(map(str, VERSION))
14
14
 
@@ -34,8 +34,8 @@ class UpdateView(BaseView, SaveMixin):
34
34
  @atomic()
35
35
  async def update(self, pk: str, request_data, *args, **kwargs):
36
36
  model = await self.get_object(pk, self.model_class, self.is_with_prefetch)
37
- data_dict = await self.set_update_fields(request_data=request_data, *args, **kwargs)
38
- data_dict = await self.set_save_fields(data_dict, request_data=request_data, *args, **kwargs)
37
+ data_dict = await self.set_update_fields(model=model, request_data=request_data, *args, **kwargs)
38
+ data_dict = await self.set_save_fields(data_dict, model=model, request_data=request_data, *args, **kwargs)
39
39
 
40
40
  await self.check_unique_field(data_dict, model_class=self.model_class, model=model)
41
41
  model = await self.set_update_model(model, data_dict, request_data=request_data, *args, **kwargs)
@@ -43,7 +43,7 @@ class UpdateView(BaseView, SaveMixin):
43
43
 
44
44
  return model
45
45
 
46
- async def set_update_fields(self, request_data, *args, **kwargs) -> dict:
46
+ async def set_update_fields(self, model, request_data, *args, **kwargs) -> dict:
47
47
  """
48
48
  修改属性:
49
49
  data_dict = request_data.dict(exclude_unset=True)
@@ -1,6 +1,6 @@
1
1
  from typing import Type, Optional, Union
2
2
 
3
- from pydantic import validator, field_validator
3
+ from pydantic import field_validator
4
4
  from pydantic.fields import FieldInfo
5
5
  from tortoise import Model
6
6
 
@@ -144,7 +144,10 @@ def get_validate_dict_from_fields(fields_info: dict) -> dict:
144
144
  for filed, field_tuple in fields_info.items():
145
145
  if field_tuple[0] == str:
146
146
  method_name = "check_%s" % filed
147
- validator_method = validator(filed, pre=True, allow_reuse=True)(remove_blank_strings)
147
+ # v1
148
+ # validator_method = validator(filed, pre=True, allow_reuse=True)(remove_blank_strings)
149
+ # v2
150
+ validator_method = field_validator(filed, mode='before')(remove_blank_strings)
148
151
  validator_dict[method_name] = validator_method
149
152
  return validator_dict
150
153
 
@@ -79,50 +79,51 @@ class SettingsModel(BaseModel):
79
79
  ):
80
80
  """
81
81
  get global settings and set into cache
82
- :param path:
83
- None时,自动检测本地文件,优先级 application.yaml,.env
84
- 推荐参数 .env / application.yaml / etcd.yaml
82
+ :param path: 指定本地文件,指定的文件不能用于修改 SettingsModel、EtcdSettings 的属性
83
+
84
+ Etcd配置优先级:
85
+ application.yaml > path指定文件 > .env
86
+ 其他属性优先级:
87
+ Etcd配置文件 > application.yaml > path指定文件 > .env
88
+ 除了.env,其他都是yaml格式
85
89
  :return:
86
90
  """
87
- is_yaml = False
91
+ data_dict = {}
88
92
  if path:
89
- if str(path).__contains__('.yaml'):
90
- is_yaml = True
91
- elif os.path.isfile("application.yaml"):
92
- path = "application.yaml"
93
- is_yaml = True
94
- else:
95
- path = ".env"
93
+ if not os.path.isfile(path):
94
+ raise ValidationException(f"指定哦欸之文件【{path}】不存在")
95
+ if str(path).endswith('.yaml'):
96
+ with open(path, 'r', encoding='utf-8') as file:
97
+ data_dict.update(yaml.safe_load(file) or {})
98
+ else:
99
+ raise ValidationException("不支持指定非yaml格式")
100
+ if os.path.isfile("application.yaml"):
101
+ with open("application.yaml", 'r', encoding='utf-8') as file:
102
+ data_dict.update(yaml.safe_load(file) or {})
103
+
104
+ etcd_settings = EtcdSettings(**data_dict.get("EtcdSettings", {}))
105
+ if etcd_settings.ETCD_SETTING_KEY:
106
+ res, metadata = etcd_settings.client.get(etcd_settings.ETCD_SETTING_KEY)
107
+ if not res:
108
+ raise ValidationException("未读取到Etcd的配置文件")
109
+ data_dict.update(yaml.safe_load(res))
96
110
 
97
- setting_models = cls.model_fields.copy()
98
111
  setting_dict = {}
99
- if not is_yaml:
100
- for k, v in setting_models.items():
101
- if isinstance(v, FieldInfo):
102
- setting_dict[k] = v.annotation(_env_file=str(path))
103
- else:
104
- data_dict = {}
105
- if os.path.isfile(path):
106
- with open(path, 'r', encoding='utf-8') as file:
107
- data_dict = yaml.safe_load(file) or {}
108
- etcd_settings = EtcdSettings(**data_dict.get("EtcdSettings", {}))
109
- if etcd_settings.ETCD_SETTING_KEY:
110
- res, metadata = etcd_settings.client.get(etcd_settings.ETCD_SETTING_KEY)
111
- data_dict.update(yaml.safe_load(res))
112
- if not data_dict:
113
- raise ValidationException(errors="配置错误")
114
- for k, v in setting_models.items():
115
- if isinstance(v, FieldInfo):
116
- env_prefix = None
117
- if hasattr(v.annotation, "Config") and v.annotation.Config.env_prefix:
118
- env_prefix = v.annotation.Config.env_prefix
119
- if not env_prefix and hasattr(v.annotation, "model_config"):
120
- env_prefix = v.annotation.model_config.get("env_prefix")
121
- if env_prefix:
122
- annotation_dict = {k_i.removeprefix(env_prefix): v_i for k_i, v_i in data_dict.get(v.annotation.__name__, {}).items()}
123
- else:
124
- annotation_dict = data_dict.get(v.annotation.__name__, {})
125
- setting_dict[k] = v.annotation(**annotation_dict)
112
+ setting_models = cls.model_fields.copy()
113
+ for k, v in setting_models.items():
114
+ if isinstance(v, FieldInfo):
115
+ env_prefix = None
116
+ if hasattr(v.annotation, "Config") and v.annotation.Config.env_prefix:
117
+ env_prefix = v.annotation.Config.env_prefix
118
+ if not env_prefix and hasattr(v.annotation, "model_config"):
119
+ env_prefix = v.annotation.model_config.get("env_prefix")
120
+ if env_prefix:
121
+ annotation_dict = {
122
+ k_i.removeprefix(env_prefix): v_i for k_i, v_i in data_dict.get(v.annotation.__name__, {}).items()
123
+ }
124
+ else:
125
+ annotation_dict = data_dict.get(v.annotation.__name__, {})
126
+ setting_dict[k] = v.annotation(**annotation_dict)
126
127
 
127
128
  setting_data = cls(**setting_dict)
128
129
 
@@ -8,6 +8,7 @@ from fastgenerateapi.pydantic_utils.base_settings import BaseSettings
8
8
 
9
9
  class AppSettings(BaseSettings):
10
10
  # 字段配置 驼峰格式:新版本(pydantic.alias_generators:to_camel)、老版本(pydantic.utils.to_lower_camel)
11
+ # 下划线:pydantic.alias_generators.to_snake
11
12
  ALIAS_GENERATOR: Optional[str] = Field(default="pydantic.alias_generators.to_snake", description="序列化参数命名方法路径")
12
13
 
13
14
  # 分页对应字段以及配置默认值
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.1
2
2
  Name: fastgenerateapi
3
- Version: 1.2.2
3
+ Version: 1.2.4
4
4
  Summary: FastAPIView Class View
5
5
  Author: ShiLiang
6
6
  Author-email: 2509144896@qq.com
@@ -94,7 +94,7 @@ uvicorn.run(app)
94
94
  - get_one_include, get_one_exclude
95
95
  - 与include同时生效,无include自动包含数据库模型搜友字段
96
96
  - 可添加跨表字段,自动生成校验和文档
97
- - 其他字段: ("test", Optioanl[str], FieldInfo(..., description="文档描述"))
97
+ - 其他字段: ("test", Optional[str], FieldInfo(..., description="文档描述"))
98
98
  - get_all_include, get_all_exclude
99
99
  - create_include, create_exclude
100
100
  - update_include, update_exclude
@@ -131,7 +131,7 @@ class XxxView(APIView):
131
131
  文档Summary注释
132
132
  生成 get方法,路由为 前缀/user_list
133
133
  """
134
- return xxx
134
+ return self.success(data={"list": []})
135
135
  ```
136
136
 
137
137
 
File without changes