|
5 | 5 | import sqlalchemy |
6 | 6 | from fastapi.utils import create_cloned_field, create_response_field |
7 | 7 | from pydantic import BaseConfig, BaseModel |
8 | | -from pydantic.fields import Field, FieldInfo |
| 8 | +from pydantic.fields import FieldInfo |
9 | 9 | from sqlalchemy import Column, String, Table |
10 | 10 | from sqlalchemy.engine import Row |
11 | 11 | from sqlalchemy.orm import ColumnProperty, DeclarativeMeta, InstrumentedAttribute, RelationshipProperty, object_session |
@@ -350,16 +350,14 @@ def insfield_to_modelfield(insfield: InstrumentedAttribute) -> Optional[ModelFie |
350 | 350 | required = False |
351 | 351 | if isinstance(expression.type, String) and expression.type.length: |
352 | 352 | field_info_kwargs["max_length"] = expression.type.length |
353 | | - if "default_factory" not in field_info_kwargs and default: |
| 353 | + if "default_factory" not in field_info_kwargs and default is not Ellipsis: |
354 | 354 | field_info_kwargs["default"] = default |
355 | 355 | type_ = expression.type.python_type |
356 | 356 | if PYDANTIC_V2: |
357 | 357 | field_info_kwargs["annotation"] = type_ |
358 | 358 | if expression.comment: |
359 | 359 | field_info_kwargs["title"] = expression.comment |
360 | | - return create_response_field( |
361 | | - name=insfield.key, type_=type_, required=required, field_info=FieldInfo(**field_info_kwargs) |
362 | | - ) |
| 360 | + return create_response_field(name=insfield.key, type_=type_, required=required, field_info=FieldInfo(**field_info_kwargs)) |
363 | 361 |
|
364 | 362 |
|
365 | 363 | def register_model(schema: Type[SchemaT]): |
|
0 commit comments