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
Uh oh!
There was an error while loading. Please reload this page.
-
`
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