Skip to main content

Django Easy Validation |pypi version|

Django Easy Validation is a simple Django library that allows validation for forms via ajax in a simple and elegant way.

Installation

Install project with pip

  pip install django-easy-validation

Usages

from django_easy_validation import Validator
from django.http import HttpResponse, JsonResponse


    def store(request):
       errors = Validator.validate(request, {
           "name": "required|unique:rating_metrices|max:100|min:6",
           "score": "required|numeric"
       })
       if errors:
           return JsonResponse(errors, status=422, safe=False)

    return JsonResponse('success', safe=False)

By default validator generated messages will be thrown, but messsages can be customized too. For example if you want to show custom messages based on validation attributes you can define it as follows

from django_easy_validation import Validator
from django.http import HttpResponse, JsonResponse


    def store(request):
       errors = Validator.validate(request, {
           "name": "required|unique:rating_metrices|max:100|min:6",
           "score": "required|numeric"
       },{
         'name.required': 'Name field cannot be empty',
         'score.required': 'Score should be assigned to each name',
      })
       if errors:
           return JsonResponse(errors, status=422, safe=False)

    return JsonResponse('success', safe=False)

Advance Usages

Instead of writing rules inside the validator validate method you can import it from other files to make the code for elegant. For example: Create a user_rules.py file under rules directory and place all your rules and messages there.

user_rules.py

class UserRules:

    valid_rules = {
        'name': 'required|min:6|max:20',
        'score': 'required|numeric',
    }

    messages = {
        'required.name': 'Name field cannot be empty',
        'required.score': 'You must add score for each name',
    }

Now you can import user_rules.py in your views and use it as below

from django_easy_validation import Validator
from rules.user_rules import UserRules


def store(request):
    metrices = json.loads(request.body)
    errors = Validator.validate(request, UserRules.valid_rules, UserRules.messages)
    if errors and is_ajax:
        return JsonResponse(errors, status=422, safe=False)

Available Validation Rules

required
unique  (unique:users)
max_character     (min:10)
min_character     (max:100)
email
numeric
boolean
string
uppercase
is_array
alphanumeric
lowercase
between
size

Build Locally

Clone the project

  git clone https://github.com/sandysh/django-easy-validation.git

Go to the project directory

  cd django-easy-validation

Build

  python setup.py sdist

Publish

  twine upload dist/*

Authors

Metadata

Release files for django-easy-validation 1.0.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-easy-validation 1.0.0
File Size Uploaded
django-easy-validation-1.0.0.tar.gz 4.2 kB Details

Release files / django-easy-validation-1.0.0.tar.gz

Download URL django-easy-validation-1.0.0.tar.gz
Size 4.2 kB
Tags Source
SHA-256 checksum
How to use checksums
2778acf964da04807aaa53e293a47437f94ff0541d9618c0b45e07d288d0a383
BLAKE2b-256 checksum
How to use checksums
3a57441b9c8a6324e0498ce760e049692645c1ffdae14a44a038cbe4854fb811
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.1.0 CPython/3.9.6

Release history Release notifications | RSS feed

This release

1.0.0 This release

1 release file

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page