Files
pydantic/docs/usage/model_config.md
T
Samuel Colvin ae34a6a733 rename allow_population_by_alias -> allow_population_by_field_name (#875)
* rename allow_population_by_alias -> allow_population_by_field_name, fix #585

* add change

* tweak PR template ☣️

* tweak Makefile
2019-10-07 18:40:01 +01:00

3.3 KiB

Behaviour of pydantic can be controlled via the Config class on a model.

Options:

title
title for the generated JSON Schema
anystr_strip_whitespace
strip or not trailing and leading whitespace for str & byte types (default: False)
min_anystr_length
min length for str & byte types (default: 0)
max_anystr_length
max length for str & byte types (default: 2 ** 16)
validate_all
whether or not to validate field defaults (default: False)
extra
whether to ignore, allow or forbid extra attributes in model. Can use either string values of ignore, allow or forbid, or use Extra enum (default is Extra.ignore)
allow_mutation
whether or not models are faux-immutable, e.g. setattr fails (default: True)
use_enum_values
whether to populate models with the value property of enums, rather than the raw enum - useful if you want to serialise model.dict() later (default: False)
fields
schema information on each field, this is equivilant to using the schema class (default: None)
validate_assignment
whether to perform validation on assignment to attributes or not (default: False)
allow_population_by_field_name
whether or not an aliased field may be populated by its name as given by the model attribute, as well as the alias (default: False)

!!! note The name of this configuration setting was changed in v1.0 from allow_population_by_alias to allow_population_by_field_name.

error_msg_templates
let's you to override default error message templates. Pass in a dictionary with keys matching the error messages you want to override (default: {})
arbitrary_types_allowed
whether to allow arbitrary user types for fields (they are validated simply by checking if the value is instance of that type). If False - RuntimeError will be raised on model declaration (default: False)
orm_mode
allows usage of ORM mode
getter_dict
custom class (should inherit from GetterDict) to use when decomposing ORM classes for validation, use with orm_mode
alias_generator
callable that takes field name and returns alias for it
keep_untouched
tuple of types (e. g. descriptors) that won't change during model creation and won't be included in the model schemas
schema_extra
takes a dict to extend/update the generated JSON Schema
json_loads
custom function for decoding JSON, see custom JSON (de)serialisation
json_dumps
custom function for encoding JSON, see custom JSON (de)serialisation
json_encoders
customise the way types are encoded to JSON, see JSON Serialisation
{!./examples/config.py!}

(This script is complete, it should run "as is")

Version for models based on @dataclass decorator:

{!./examples/ex_dataclasses_config.py!}

(This script is complete, it should run "as is")

Alias Generator

If data source field names do not match your code style (e. g. CamelCase fields), you can automatically generate aliases using alias_generator:

{!./examples/alias_generator_config.py!}

(This script is complete, it should run "as is")