# Fields

Fields represent a set of rules to data validation via set of `Validator` instances. When you define yours custom `Form` you define Fields as its class attributes. This is the most common usage of Fields, but nothing prevents you to use them standalone.

## Field class

class `flyforms.fields.``Field`

  Construction

  `__init__`(required=True, choices=(), validators=(), **kwargs)

    Parameters: | required (bool) – boolean flag is this field required or can be empty choices (iterable) – iterable object contains possible values of this field validators (list of callable) – the additional validators for field default (instance of value_types) – the default value of the field
    Raises TypeError:
    | if passed arguments invalid

  Methods

  `validate`(value)

    Validates given value via defined set of `Validators`

    Parameters: | value – the value to validate

  `is_valid`(value)

    The ‘silent’ variant of value validation.

    Parameters: | value – the value to validate
    Returns: | True if given value is valid, otherwise - False

  `bind`(value)

    Validates and given value via defined set of `Validators` and returns it

    Parameters: | value – the value to bind
    Returns: | given value or `field.default` if value is `UNSET`

    New in version 0.2.0.

  Attributes

  `required`

    Boolean flag passed to constructor

  `default`

    The default value for Field (passed to constructor value or `UNSET`)

  `base_validators`

    List of attached by processing construction arguments `Validators`

  `custom_validators`

    Iterable object contains `custom_validators` passed to constructor

  Property

  `validators`

    Chain, contains `base_validators` and `custom_validators`

## Basic Fields

### StringField

class `flyforms.fields.``StringField`(min_length=None, max_length=None, regex='', **kwargs)

  Reflects Python strings

  `__init__`(min_length=None, max_length=None, regex='', **kwargs)

    Parameters: | required (bool) – boolean flag is this field required min_length (int or None) – the minimum length of the string max_length (int or None) – the maximum length of the string regex (str or regexp) – the regular expression to validate choices (iterable) – iterable object contains possible values of this field validators (list of callable) – the additional validators for field default (instance of value_types) – the default value of the field

### EmailField

class `flyforms.fields.``EmailField`(**kwargs)

  Reflects Python string corresponding to an email

  `__init__`(**kwargs)

    Parameters: | required (bool) – boolean flag is this field required choices (iterable) – iterable object contains possible values of this field validators (list of callable) – the additional validators for field default (instance of value_types) – the default value of the field

### IntField

class `flyforms.fields.``IntField`(min_value=None, max_value=None, **kwargs)

  Reflects Python integer (`int`)

  `__init__`(min_value=None, max_value=None, **kwargs)

    Parameters: | required (bool) – boolean flag is this field required min_value – the minimum valid value max_value – the maximum valid value choices (iterable) – iterable object contains possible values of this field validators (list of callable) – the additional validators for field default (instance of value_types) – the default value of the field

### FloatField

class `flyforms.fields.``FloatField`(min_value=None, max_value=None, **kwargs)

  Reflects Python float (`float`)

  `__init__`(min_value=None, max_value=None, **kwargs)

    Parameters: | required (bool) – boolean flag is this field required min_value – the minimum valid value max_value – the maximum valid value choices (iterable) – iterable object contains possible values of this field validators (list of callable) – the additional validators for field default (instance of value_types) – the default value of the field

### BooleanField

class `flyforms.fields.``BooleanField`(**kwargs)

  Reflects Python boolean (`bool`)

  `__init__`(**kwargs)

    Parameters: | required (bool) – boolean flag is this field required validators (list of callable) – the additional validators for field default (instance of value_types) – the default value of the field

### Ip4Field

class `flyforms.fields.``Ip4Field`(**kwargs)

  Reflects Python string corresponding to an IPv4 address

  `__init__`(**kwargs)

    Parameters: | required (bool) – boolean flag is this field required choices (iterable) – iterable object contains possible values of this field validators (list of callable) – the additional validators for field default (instance of value_types) – the default value of the field

## Schema Field

Schema Fields is a set of rules to validation data structures such as lists, dicts.

### ListField

class `flyforms.fields.``ListField`(min_length=None, max_length=None, jsonify=True, **kwargs)

  Reflects iterable Python objects

  `__init__`(min_length=None, max_length=None, jsonify=True, **kwargs)

    Parameters: | min_length – minimum iterable length max_length – maximum iterable length jsonify – if passed `item_type` should be one of `jsonify_types` kwargs – basic `Field` parameters

### ArrayField

class `flyforms.fields.``ArrayField`(item_type, jsonify=True, **kwargs)

  Reflects iterable objects where each item same type

  `__init__`(item_type, jsonify=True, **kwargs)

    Parameters: | item_type – type of each item in the list kwargs – basic `ListField` parameters

## Custom Fields

Sometimes, it is necessary to design custom fields for validation of some special data structures. If you want do this, you should design your custom subclass of the `Field`.