Name | Modified | Size | Downloads / Week |
---|---|---|---|
Parent folder | |||
0.119.0 source code.tar.gz | 2025-10-11 | 15.9 MB | |
0.119.0 source code.zip | 2025-10-11 | 17.4 MB | |
README.md | 2025-10-11 | 1.6 kB | |
Totals: 3 Items | 33.3 MB | 1 |
FastAPI now (temporarily) supports both Pydantic v2 models and pydantic.v1
models at the same time in the same app, to make it easier for any FastAPI apps still using Pydantic v1 to gradually but quickly migrate to Pydantic v2.
:::Python
from fastapi import FastAPI
from pydantic import BaseModel as BaseModelV2
from pydantic.v1 import BaseModel
class Item(BaseModel):
name: str
description: str | None = None
class ItemV2(BaseModelV2):
title: str
summary: str | None = None
app = FastAPI()
@app.post("/items/", response_model=ItemV2)
def create_item(item: Item):
return {"title": item.name, "summary": item.description}
Adding this feature was a big effort with the main objective of making it easier for the few applications still stuck in Pydantic v1 to migrate to Pydantic v2.
And with this, support for Pydantic v1 is now deprecated and will be removed from FastAPI in a future version soon.
Note: have in mind that the Pydantic team already stopped supporting Pydantic v1 for recent versions of Python, starting with Python 3.14.
You can read in the docs more about how to Migrate from Pydantic v1 to Pydantic v2.