uriyyo / fastapi-pagination

FastAPI pagination 📖
https://uriyyo-fastapi-pagination.netlify.app/
MIT License
1.11k stars 128 forks source link

Post Migration Pydantic V2 : "Getting error while listing Model responses having date fields #915

Closed rsingh2411 closed 5 months ago

rsingh2411 commented 8 months ago

Fastapi version 104 pydantic 2.4.2 fastapi-pagination 0.12.12

value of datefield in database "2023-11-09 15:58:35.478103"

`

result = await paginate(async_connection, query, unique=False) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/rohitsingh/Workspace/CloudGain/test/ces-fastapi-backend/env/lib/python3.11/site-packages/sqlalchemy/util/_concurrency_py3k.py", line 167, in greenlet_spawn result = context.switch(value) ^^^^^^^^^^^^^^^^^^^^^ File "/Users/rohitsingh/Workspace/CloudGain/test/ces-fastapi-backend/env/lib/python3.11/site-packages/fastapi_pagination/ext/sqlalchemy.py", line 134, in exec_pagination return create_page( ^^^^^^^^^^^^ File "/Users/rohitsingh/Workspace/CloudGain/test/ces-fastapi-backend/env/lib/python3.11/site-packages/fastapi_pagination/api.py", line 180, in create_page return _page_val.get().create(items, **kwargs) ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/rohitsingh/Workspace/CloudGain/test/ces-fastapi-backend/env/lib/python3.11/site-packages/fastapi_pagination/default.py", line 67, in create return create_pydantic_model( ^^^^^^^^^^^^^^^^^^^^^^ File "/Users/rohitsingh/Workspace/CloudGain/test/ces-fastapi-backend/env/lib/python3.11/site-packages/fastapi_pagination/utils.py", line 149, in create_pydantic_model return model_cls.model_validate(kwargs, from_attributes=True) # type: ignore ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ File "/Users/rohitsingh/Workspace/CloudGain/test/ces-fastapi-backend/env/lib/python3.11/site-packages/pydantic/main.py", line 503, in model_validate return cls.__pydantic_validator__.validate_python( ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ pydantic_core._pydantic_core.ValidationError: 19 validation errors for Page[RegisterGetinTouchResponse] items.0.created_at Datetimes provided to dates should have zero time - e.g. be exact dates [type=date_from_datetime_inexact, input_value=datetime.datetime(2023, 10, 5, 18, 30, 54, 908675), input_type=datetime] For further information visit https://errors.pydantic.dev/2.4/v/date_from_datetime_inexact

`

uriyyo commented 8 months ago

Hi @rsingh2411,

It's actually related to pydantic logic, not to fastapi-pagination.

You need to pass date, not datetime object for validation.

uriyyo commented 8 months ago

Hi @rsingh2411,

Any updates?

uriyyo commented 5 months ago

@rsingh2411 I am closing this issue, please, reopen it in case of any issues.