Skip to main content

A validated IBAN field for Django models

Project description

Migrating Model Fields to django-localflavor

Add localflavor to your INSTALLED_APPS and then change the model fields IBANField and``SWIFTBICField`` to the versions from django-localflavor.

For example, the django-iban model fields should be changed from this:

from django_iban.fields import IBANField, SWIFTBICField

class CustomerModel(models.Model):
    iban = IBANField()
    bic = SWIFTBICField()

to the django-localflavor model field versions:

from localflavor.generic.models import IBANField, BICField

class CustomerModel(models.Model):
    iban = IBANField()
    bic = BICField()

For Django < 1.7, you will need to use South to migrate your database. Use schemamigration to create a migration and then run migrate alter your database. For example:

% ./manage.py schemamigration myapp --auto convert_django_iban_to_django_localflavor
 ~ Changed field iban on myapp.CustomerModel
 ~ Changed field bic on myapp.CustomerModel
Created 0002_convert_django_iban_to_django_localflavor.py. You can now apply this migration with: ./manage.py migrate myapp

% ./manage.py migrate myapp
Running migrations for myapp:
 - Migrating forwards to 0002_convert_django_iban_to_django_localflavor.
 > myapp:0002_convert_django_iban_to_django_localflavor
 - Loading initial data for myapp.
Installed 0 object(s) from 0 fixture(s)

For Django >= 1.7, run makemigrations to create a migration and then run migrate alter your database. For example:

% ./manage.py makemigrations myapp
Migrations for 'myapp':
  0002_auto_20150210_1004.py:
    - Alter field bic on customermodel
    - Alter field iban on customermodel

% ./manage.py migrate myapp
Operations to perform:
  Apply all migrations: myapp
Running migrations:
  Applying myapp.0002_auto_20150210_1004... OK

Migrating Form Fields to django-localflavor

Change the form fields IBANFormField and SWIFTBICFormField to the versions from django-localflavor.

For example, the django-iban form fields should be changed from this:

from django_iban.forms import IBANFormField, SWIFTBICFormField

class CustomerForm(forms.Form):
    iban = IBANFormField()
    swift_bic = SWIFTBICFormField()

to the django-localflavor form field versions:

from localflavor.generic.forms import IBANFormField, BICFormField

class CustomerForm(forms.Form):
    iban = IBANFormField()
    bic = BICFormField()

Supported by

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