flask-pydantic==0.10.0
flask==2.1.2
Steps to reproduce
- Define a query model with an aliased list field.
class QueryModel(BaseModel):
order_by: Optional[
List[Literal["created", "name"]]
] = Field(..., alias="order-by")
class Config:
allow_population_by_field_name = True
- Set this as
query: QueryModel in your request handler function signature.
- Send a request with
?order-by=name
Expected result
- The request should be considered valid.
query.order_by should be a list ['name'].
Actual result
{
"validation_error": {
"query_params": [
{
"loc": [
"order-by"
],
"msg": "value is not a valid list",
"type": "type_error.list"
}
]
}
}
In short:
- Aliased query params work.
- List query params work (e.g.
?order_by=name&order_by=created gives you list with these values).
- Aliased list query params do not work.
Steps to reproduce
query: QueryModelin your request handler function signature.?order-by=nameExpected result
query.order_byshould be a list['name'].Actual result
{ "validation_error": { "query_params": [ { "loc": [ "order-by" ], "msg": "value is not a valid list", "type": "type_error.list" } ] } }In short:
?order_by=name&order_by=createdgives you list with these values).