odmantic
odmantic copied to clipboard
Cannot support motor time zone problem
note : tzinfo=pytz.timezone(TZ_INFO)
class Users(Model):
class Config:
collection: str = 'users'
# def __setattr__(self, key, value):
# match key:
# case 'create_at':
# self.__dict__[key] = value
# case 'update_at':
# self.__dict__[key] = value
username: str = Field() # 帐号: quid1111
# password: str = Field() # 密码: 123456
disabled: bool = Field() # 禁用:True == 禁用
name: str = Field(None) # 姓名: 张三
mail: str = Field(None) # 邮箱
company: str = Field(None) # 公司
department: str = Field(None) # 部门
# association_role: AssociationRole = Field(None) # 关联角色
create_at: datetime = Field(None) # 创建时间
client = AsyncIOMotorClient(
f'mongodb://{MONGODB_USERNAME}:{MONGODB_PASSWORD}@{MONGODB_HOST}',
tz_aware=True,
tzinfo=pytz.timezone(TZ_INFO)
)
engine = AIOEngine(client, database=DATABASE_NAME)
errror:
INFO: 127.0.0.1:43516 - "GET /api/v1/users/account HTTP/1.1" 500 Internal Server Error
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/odmantic/model.py", line 768, in parse_doc
instance = cls.parse_obj(obj)
File "pydantic/main.py", line 526, in pydantic.main.BaseModel.parse_obj
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/odmantic/model.py", line 524, in __init__
super().__init__(**data)
File "pydantic/main.py", line 342, in pydantic.main.BaseModel.__init__
pydantic.error_wrappers.ValidationError: 1 validation error for Users
create_at
datetime objects must be naive (no timezone info) (type=value_error)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/uvicorn/protocols/http/httptools_impl.py", line 419, in run_asgi
result = await app( # type: ignore[func-returns-value]
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in __call__
return await self.app(scope, receive, send)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/fastapi/applications.py", line 270, in __call__
await super().__call__(scope, receive, send)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/starlette/applications.py", line 124, in __call__
await self.middleware_stack(scope, receive, send)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/starlette/middleware/errors.py", line 184, in __call__
raise exc
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/starlette/middleware/errors.py", line 162, in __call__
await self.app(scope, receive, _send)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
raise exc
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
await self.app(scope, receive, sender)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 21, in __call__
raise e
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/fastapi/middleware/asyncexitstack.py", line 18, in __call__
await self.app(scope, receive, send)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/starlette/routing.py", line 706, in __call__
await route.handle(scope, receive, send)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/starlette/routing.py", line 276, in handle
await self.app(scope, receive, send)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/starlette/routing.py", line 66, in app
response = await func(request)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/fastapi/routing.py", line 225, in app
solved_result = await solve_dependencies(
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 504, in solve_dependencies
solved_result = await solve_dependencies(
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/fastapi/dependencies/utils.py", line 533, in solve_dependencies
solved = await call(**sub_values)
File "/home/V01/extittivns03/Documents/code/github/universal/server/app/utils/dependencies.py", line 81, in get_current_user
doc = await db_client.find_one(Users, Users.username == username)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/odmantic/engine.py", line 509, in find_one
results = await self.find(model, *queries, sort=sort, limit=1, session=session)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/odmantic/engine.py", line 110, in __await__
instances.append(self._parse_document(raw_doc))
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/odmantic/engine.py", line 83, in _parse_document
instance = self._model.parse_doc(raw_doc)
File "/home/V01/extittivns03/.pyenv/versions/3.10.8/lib/python3.10/site-packages/odmantic/model.py", line 770, in parse_doc
raise DocumentParsingError(
odmantic.exceptions.DocumentParsingError: 1 validation error for Users
create_at
datetime objects must be naive (no timezone info) (type=value_error)
(Users instance details: id=ObjectId('62b98323bc765ef1413bcd0f'))