Skip to main content

Orator Validator provides the best Model implement validation for Orator

Project description


This is a orator plugin that you can use to validate your model when the user is creating a new item or updating one on the database is easy to use and cleans the code a lot


You can install the plugin by using pip

$ pip install orator-validator

How to use it


this is an example of how to implement on your orator model

from orator import Model
from orator_validator import Validator

class User(Model, Validator):

    __connection__ = 'local'
    __fillable__ = [
          'name', 'email', 'password', 'phone_number'
    __guarded__ = ['id', 'password']

class UserValidation(object):
  '''Here goes the validations that you need'''


Functions available

Validate saving function

the validate function accepts this params

  • require: boolean when True checks if they send the value

  • data_type: object Verifies if the value is specific data type

  • regex: string pass a regex to verified

  • date_str: string witch you want to check the format of the date example ‘%H:%M’


def saving(self, user):
    user.validate('name', require=True, data_type=str)
        'email', regex="(?:[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*|\"(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21\\x23-\\x5b\\x5d-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])*\")@(?:(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?|\\[(?:(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9]))\\.){3}(?:(2(5[0-5]|[0-4][0-9])|1[0-9][0-9]|[1-9]?[0-9])|[a-z0-9-]*[a-z0-9]:(?:[\\x01-\\x08\\x0b\\x0c\\x0e-\\x1f\\x21-\\x5a\\x53-\\x7f]|\\[\\x01-\\x09\\x0b\\x0c\\x0e-\\x7f])+)\\])"
        'password', regex="^(?=.*[A-Za-z])(?=.*\\d)(?=.*[@$!%*#?&])[A-Za-z\\d@$!%*#?&]{6,}$"

Validate update function

the validate_update accepts this params

  • guarded: boolean if True value cannot be updated

  • data_tpe: needs to send specific data type

  • regex: regex to validate the value

  • date_str: string to validate a date format

  • function_callback: callback function if the value was send

  • args: arguments for the function callbacks


def updating(self, user):
    user.validate_update('email', guarded=True)
      'password', function_callback=self.__validate_new_password, user=user

def __validate_new_password(self, user):
    Validate that the new password is diferent than the old one
    if user.password == User.find(
      raise Exception("Can't update password with old one")

Process function

the process function accepts

  • exist: function uses as a callback if the value was send

  • not_exist: function uses as a callback if the value was not send

  • args: arguments for the function callbacks


def saving(self, user):
    user.process('phone_number', exist=self.__process_phone)

def __process_phone(self, user):
    This function process the phone if the user send one
    if[0] != "+": = "+1 {}".format(

Project details

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

orator_validator-0.4.1.tar.gz (4.4 kB view hashes)

Uploaded source

Built Distribution

orator_validator-0.4.1-py3-none-any.whl (6.9 kB view hashes)

Uploaded py3

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page