django-isbn-field

Provides a model and form fields to manage and validate ISBN numbers


Keywords
django, isbn, field
License
Other
Install
pip install django-isbn-field==0.5.3

Documentation

django-isbn-field Build Status

Provides django model field to store and validate ISBN numbers.

Requirements

It has been tested on

  • Python >= 3.3
  • Django 1.7, 1.8, 1.9, 1.10, 1.11, 2.0

Installation

From Pypi

$ pip install django-isbn-field

or from the repository

$ git clone https://github.com/secnot/django-isbn-field
$ python setup.py install

Usage

Add isbn_field to INSTALLED_APPS

# settings.py
INSTALLED_APPS = (
	...
	'isbn_field',
)

Use the field in your model

from django.db import models
from isbn_field import ISBNField

class Book(models.Model):
	isbn = ISBNField()
	...

It will raise a ValidationError when the number provided is invalid.

Further, by default any entered ISBN will be cleaned (dashes and spaces are removed) and stored in this canonical form. You can disable this and store the original form through the clean_isbn flag.

from django.db import models
from isbn_field import ISBNField

class Book(models.Model):
	dirty_isbn = ISBNField(clean_isbn=False)
	...

In case you expect very chaotic input (e.g. more than one space or dash between digits), you might also want to increase the max_length of the field to allow for enough room for the string in the database.