Validators

Bases

Base classes for validators

Use this classes as base class for your own validators.

class djburger.validators.bases.IValidator[source]

Abstract base class for validators.

cleaned_data

Cleaned data dict (or other type). Set by is_valid method.

errors

Errors dict. Set by is_valid method.

key: name of invalid field or __all__. value: list of errors strings.

is_valid()[source]

Validate and clean data.

  1. Set cleaned_data and return True if data is valid
  2. Set errors and return False otherwise.
Returns:
True: data is valid False: data is invalid
class djburger.validators.bases.Form(data, request=None, **kwargs)[source]

Validator based on Django Forms.

class djburger.validators.bases.ModelForm(data, request=None, **kwargs)[source]

Validator based on Django Model Forms.

save(*args, **kwargs)[source]

All operations into validators must be idempotency.

class djburger.validators.bases.Marshmallow(data, request=None, **kwargs)[source]

Validator based on marshmallow schema.

class djburger.validators.bases.WTForms(data, request=None, **kwargs)[source]

Validator based on WTForms form.

class djburger.validators.bases.RESTFramework(data, request=None, **kwargs)[source]

Validator based on Django REST Framework serializers.

Wrappers

Wrappers for validators

Use this classes as wrappers for non-djburger validators

class djburger.validators.wrappers.Form(validator)[source]

Wrapper for use Django Form (or ModelForm) as validator.

djburger.validators.wrappers.ModelForm

alias of djburger.validators.wrappers.Form

class djburger.validators.wrappers.Marshmallow(validator)[source]

Wrapper for use marshmallow scheme as validator.

class djburger.validators.wrappers.PySchemes(validator)[source]

Wrapper for use PySchemes as validator.

class djburger.validators.wrappers.Cerberus(validator)[source]

Wrapper for use Cerberus as validator.

class djburger.validators.wrappers.RESTFramework(validator)[source]

Wrapper for use Django REST Framework serializer as validator.

class djburger.validators.wrappers.WTForms(validator)[source]

Wrapper for use WTForms form as validator.

Constructors

Constructors for validators

Use this classes for constructing your own validators.

djburger.validators.constructors.Any

alias of djburger.validators.constructors.Or

djburger.validators.constructors.All

alias of djburger.validators.constructors.Chain

class djburger.validators.constructors.Cerberus(**kwargs)[source]

Validate data by Cerberus.

Parameters:
  • schema (dict) – validation scheme for Cerberus.
  • allow_unknown (bool) –
class djburger.validators.constructors.Chain(*validators)[source]

Validate data by validators chain (like reduce function).

Calls the validators in order, passing in each subsequent cleaned data from the previous one.

Parameters:validators (list) – list of validators.
is_valid()[source]

Validate and clean data.

  1. Set cleaned_data and return True if data is valid
  2. Set errors and return False otherwise.
Returns:
True: data is valid False: data is invalid
djburger.validators.constructors.Dict(validator)[source]

Validate data dict

Parameters:validator – validator which be applyed to all values of dict.
djburger.validators.constructors.DictForm(form)[source]

Validate dict values by Django Forms

djburger.validators.constructors.DictMixed(validators, policy='error', required=False)[source]

Validate dict keys by multiple validators

Parameters:
  • validators (dict) – validator which be applyed to all values of dict.
  • policy (str) – policy if validator for data not found: “error” - add error into errors attr and return False. “except” - raise KeyError exception. “ignore” - add source value into cleaned_data. “drop” - drop this value and continue.
djburger.validators.constructors.DictModelForm(form)[source]

Validate dict values by Django Model Forms

djburger.validators.constructors.IsBool = <djburger.validators.constructors.Type object>

Data type is bool

djburger.validators.constructors.IsDict = <djburger.validators.constructors.Type object>

Data type is dict

djburger.validators.constructors.IsFloat = <djburger.validators.constructors.Type object>

Data type is float

djburger.validators.constructors.IsInt = <djburger.validators.constructors.Type object>

Data type is int

djburger.validators.constructors.IsIter = <djburger.validators.constructors.Type object>

Data type is iterable

djburger.validators.constructors.IsList = <djburger.validators.constructors.Type object>

Data type is list

djburger.validators.constructors.IsStr = <djburger.validators.constructors.Type object>

Data type is str

class djburger.validators.constructors.Lambda(key, error_msg='Custom validation is failed')[source]

Validate data by lambda expression.

Parameters:key (callable) – lambda, function or other callable object which get data and return bool result (True if valid).
is_valid()[source]

Validate and clean data.

  1. Set cleaned_data and return True if data is valid
  2. Set errors and return False otherwise.
Returns:
True: data is valid False: data is invalid
djburger.validators.constructors.List(validator)[source]

Validate data list.

Parameters:validators – if passed only one validator it’s be applied to each list element. One validator will be applyed to one element sequentionaly otherwise.
djburger.validators.constructors.ListForm(form)[source]

Validate list elements by Django Forms

djburger.validators.constructors.ListModelForm(form)[source]

Validate list elements by Django Model Forms

djburger.validators.constructors.ModelInstance = <djburger.validators.constructors.Chain object>

Validate model instance and convert it to dict.

Doesn’t require initialization.

class djburger.validators.constructors.Or(*validators)[source]

Validate data by validators (like any function).

Calls the validators in order, return cleaned_data from first successfull validation or errors from last validator

Parameters:validators (list) – list of validators.
is_valid()[source]

Validate and clean data.

  1. Set cleaned_data and return True if data is valid
  2. Set errors and return False otherwise.
Returns:
True: data is valid False: data is invalid
djburger.validators.constructors.OR

alias of djburger.validators.constructors.Or

class djburger.validators.constructors.PySchemes(**kwargs)[source]

Validate data by PySchemes.

Parameters:scheme – validation scheme for pyschemes.
class djburger.validators.constructors.Type(data_type, error_msg='Invalid data type: {}. Required {}.')[source]

Validate data type

Parameters:
  • data_type (type) – required type of data.
  • error_msg (str) – template for error message.
is_valid()[source]

Validate and clean data.

  1. Set cleaned_data and return True if data is valid
  2. Set errors and return False otherwise.
Returns:
True: data is valid False: data is invalid
djburger.validators.constructors.QuerySet = <djburger.validators.constructors.Chain object>

Validate queryset and convert each object in it to dict.

Doesn’t require initialization.