Validated Django model fields for International Bank Account Numbers (IBAN - ISO 13616-1:2007) and SWIFT-BIC (ISO 9362:2009).
Author: Ben Konrath
License: 3-clause BSD
Features:
- Support for all currently active and planned to be active IBAN countries / numbers.
- Optional validation for IBANs included the Nordea IBAN extensions.
- Validates IBAN using the official validation algorithm.
- Basic validation for SWIFT-BIC.
- Python 3.2 and 3.3 support for Django >= 1.5.
Usage:
Use the model fields IBANField and/or SWIFTBICField in your models:
from django.db import models
from django_iban.fields import IBANField, SWIFTBICField
class CustomerModel(models.Model):
iban = IBANField()
swift_bic = SWIFTBICField()
Use the form fields IBANFormField and/or SWIFTBICFormField in your forms:
from django import forms
from django_iban.forms import IBANFormField, SWIFTBICFormField
class CustomerForm(forms.Form):
iban = IBANFormField()
swift_bic = SWIFTBICFormField()
If you want to validate the Nordea IBAN extensions, the model and form fields can be setup like this:
class CustomerModel(models.Model):
iban = IBANField(use_nordea_extensions=True)
class CustomerForm(forms.Form):
iban = IBANFormField(use_nordea_extensions=True)
Development:
Coding style: PEP8 with 120 character lines.
Ideas for new features include:
- SWIFT-BIC validation using referenced IBANField (SEPA requires both IBAN and SWIFT-BIC to be correct).
- Translation of validation error messages using Transifex.
Pull requests happily accepted.