pypifastapi95% confidence\u2191 21

Pydantic returns 'field required (type=value_error.missing)' on an Optional field with a custom model

Full error message
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

ValidationError: 1 validation error for UserRead
twitter_account
  Field required [type=missing, input_value={}, input_type=dict]

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 that twitter_account can be a TwitterAccount or None, 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: class UserRead(schemas.BaseUser[uuid.UUID]): twitter_account: Optional['TwitterAccount'] = None

API access

Get this solution programmatically \u2014 free, no authentication.

curl https://depscope.dev/api/error/436767be3caa5348cbd07d794edb295641c1ab679d7726f0201fc9791ed20575
hash \u00b7 436767be3caa5348cbd07d794edb295641c1ab679d7726f0201fc9791ed20575
Pydantic returns 'field required (type=value_error.missi… — DepScope fix | DepScope