Skip to content

Commit

Permalink
Fix original_name validation (#1755)
Browse files Browse the repository at this point in the history
  • Loading branch information
koxudaxi authored Dec 4, 2023
1 parent 6cd17e1 commit b2b57e7
Showing 1 changed file with 11 additions and 6 deletions.
17 changes: 11 additions & 6 deletions datamodel_code_generator/reference.py
Original file line number Diff line number Diff line change
Expand Up @@ -38,7 +38,7 @@
PYDANTIC_V2,
ConfigDict,
cached_property,
field_validator,
model_validator,
)

if TYPE_CHECKING:
Expand Down Expand Up @@ -121,14 +121,19 @@ class Reference(_BaseModel):
children: List[Any] = []
_exclude_fields: ClassVar[Set[str]] = {'children'}

@field_validator('original_name')
def validate_original_name(cls, v: Any, values: Dict[str, Any]) -> str:
@model_validator(mode='before')
def validate_original_name(cls, values: Any) -> Any:
"""
If original_name is empty then, `original_name` is assigned `name`
"""
if v: # pragma: no cover
return v
return values.get('name', v) # pragma: no cover
if not isinstance(values, dict): # pragma: no cover
return values
original_name = values.get('original_name')
if original_name:
return values

values['original_name'] = values.get('name', original_name)
return values

if PYDANTIC_V2:
# TODO[pydantic]: The following keys were removed: `copy_on_model_validation`.
Expand Down

0 comments on commit b2b57e7

Please sign in to comment.