mirror of https://github.com/tiangolo/fastapi.git
Fix not consider alias in Form
This commit is contained in:
parent
69a7c99b44
commit
297d2594f8
|
|
@ -28,3 +28,4 @@ archive.zip
|
|||
|
||||
# macOS
|
||||
.DS_Store
|
||||
.python-version
|
||||
|
|
|
|||
|
|
@ -262,7 +262,7 @@ if PYDANTIC_V2:
|
|||
def create_body_model(
|
||||
*, fields: Sequence[ModelField], model_name: str
|
||||
) -> Type[BaseModel]:
|
||||
field_params = {f.name: (f.field_info.annotation, f.field_info) for f in fields}
|
||||
field_params = {f.field_info.alias: (f.field_info.annotation, f.field_info) for f in fields}
|
||||
BodyModel: Type[BaseModel] = create_model(model_name, **field_params) # type: ignore[call-overload]
|
||||
return BodyModel
|
||||
|
||||
|
|
|
|||
|
|
@ -0,0 +1,28 @@
|
|||
from typing import Annotated
|
||||
|
||||
from fastapi import FastAPI, Form
|
||||
from starlette.testclient import TestClient
|
||||
|
||||
|
||||
app:FastAPI = FastAPI()
|
||||
|
||||
@app.post("/testing_alias")
|
||||
async def check_alias(id_test: Annotated[int, Form(alias="otherId")]):
|
||||
return {"other_id":id_test}
|
||||
|
||||
@app.patch("/testing")
|
||||
async def check_without_alias(id_test:Annotated[int, Form()]):
|
||||
return {"id_test":id_test}
|
||||
|
||||
|
||||
client = TestClient(app)
|
||||
|
||||
def test_without_alias():
|
||||
response = client.patch("/testing", data={"id_test":1})
|
||||
assert response.status_code == 200
|
||||
assert response.json() == {"id_test":1}
|
||||
|
||||
def test_get_alias():
|
||||
response = client.post("/testing_alias", data={"otherId":"1"})
|
||||
assert response.status_code == 200
|
||||
assert response.json() == {"other_id":1}
|
||||
Loading…
Reference in New Issue