Pydantic @field_ serializer decoration on asynchronous functions will cause errors #1542
Unanswered
rubbish822
asked this question in
Q&A
Replies: 0 comments
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
-
`
from tortoise import fields, models
from tortoise.contrib.pydantic import pydantic_model_creator
from pydantic import field_serializer
class User(models.Model):
name = fields.CharField(max_length=16)
age = fields.SmallIntField()
User_Pydantic = pydantic_model_creator(User, name='User')
class UserSchema(User_Pydantic):
some_data: dict
from fastapi import APIRouter
router = APIRouter()
@router.get('/users', response_model=list[UserSchema], status_code=200, tags=['users'])
async def list_users():
return await User.all()
Error:
ERROR: Exception in ASGI application
Traceback (most recent call last):
File "/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 426, in run_asgi
result = await app( # type: ignore[func-returns-value]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 84, in call
return await self.app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lib/python3.11/site-packages/fastapi/applications.py", line 1054, in call
await super().call(scope, receive, send)
File "/lib/python3.11/site-packages/starlette/applications.py", line 116, in call
await self.middleware_stack(scope, receive, send)
File "/lib/python3.11/site-packages/starlette/middleware/errors.py", line 186, in call
raise exc
File "/lib/python3.11/site-packages/starlette/middleware/errors.py", line 164, in call
await self.app(scope, receive, _send)
File "/lib/python3.11/site-packages/starlette/middleware/cors.py", line 83, in call
await self.app(scope, receive, send)
File "/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 62, in call
await wrap_app_handling_exceptions(self.app, conn)(scope, receive, send)
File "/lib/python3.11/site-packages/starlette/_exception_handler.py", line 55, in wrapped_app
raise exc
File "/lib/python3.11/site-packages/starlette/_exception_handler.py", line 44, in wrapped_app
await app(scope, receive, sender)
File "/lib/python3.11/site-packages/starlette/routing.py", line 746, in call
await route.handle(scope, receive, send)
File "/lib/python3.11/site-packages/starlette/routing.py", line 288, in handle
await self.app(scope, receive, send)
File "/lib/python3.11/site-packages/starlette/routing.py", line 75, in app
await wrap_app_handling_exceptions(app, request)(scope, receive, send)
File "/lib/python3.11/site-packages/starlette/_exception_handler.py", line 55, in wrapped_app
raise exc
File "/lib/python3.11/site-packages/starlette/_exception_handler.py", line 44, in wrapped_app
await app(scope, receive, sender)
File "/lib/python3.11/site-packages/starlette/routing.py", line 70, in app
response = await func(request)
^^^^^^^^^^^^^^^^^^^
File "/lib/python3.11/site-packages/fastapi/routing.py", line 315, in app
content = await serialize_response(
^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lib/python3.11/site-packages/fastapi/routing.py", line 160, in serialize_response
return field.serialize(
^^^^^^^^^^^^^^^^
File "/lib/python3.11/site-packages/fastapi/_compat.py", line 147, in serialize
return self._type_adapter.dump_python(
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/lib/python3.11/site-packages/pydantic/type_adapter.py", line 314, in dump_python
return self.serializer.to_python(
^^^^^^^^^^^^^^^^^^^^^^^^^^
pydantic_core._pydantic_core.PydanticSerializationError: Unable to serialize unknown type: <class 'coroutine'>
`
Beta Was this translation helpful? Give feedback.
All reactions