I'm trying to build a custom field in Fastapi-users pydantic schema as follows:
class UserRead(schemas.BaseUser[uuid.UUID]):
twitter_account: Optional['TwitterAccount']
On UserRead validation Pydantic returns
field required (type=value_error.missing)
on every field in 'TwitterAccount'
schema.update_forward_refs()
is called at the end.
TwitterAccount
itself has required fields and making them optional isn't an acceptable workaround. I notices I could make Optional[List['TwitterAccount']]
and it will work, but that's a bit silly.
Optional
is a bit misleading here. What it means technically means is thattwitter_account
can be aTwitterAccount
orNone
, but it is still a required argument. To make it truly optional (as in, it doesn't have to be provided), you must provide a default: