If you're always inserting a string there, it might be better to use a computed_field
. Something along this, maybe?
class MyModel(BaseModel):
input: str
@computed_field
def x(self) -> int:
return len(self.input)
I think it's very counterintuitive if you see the model with the int declaration while it would raise type errors if you put an integer inside a JSON at that place.