l10n russian validators for INN, bank account number
$ pip install django-ru-validators
from django import forms
from django.db import models
from django.core.exceptions import ValidationError
from django_ru_validators import validate_inn, BankAccountNumberValidator
class PaymentOrder(models.Model):
recipient_inn = models.CharField(validators=[validate_inn])
recipient_account_number = models.CharField()
recipient_bank = models.CharField()
class PaymentOrderForm(forms.ModelForm):
class Meta:
model = PaymentOrder
fields = ("recipient_inn", "recipient_account_number", "recipient_bik")
def clean(self):
cleaned_data = super().clean()
recipient_account_number = cleaned_data.get("recipient_account_number")
recipient_bik = cleaned_data.get("recipient_bik")
try:
BankAccountNumberValidator(recipient_bik)(recipient_account_number)
except ValidationError:
msg = "Wrong combination of account number and bik of bank"
self.add_error("recipient_account_number", msg)
self.add_error("recipient_bik", msg)
return cleaned_data
Install dependencies with
$ pip install --requirement requirements.txt
Run tests with
$ python setup.py test