Files
django-jsignature/jsignature/forms.py
2013-09-18 10:50:19 +02:00

30 lines
909 B
Python

"""
Provides a django form field to handle a signature capture field with
with jSignature jQuery plugin
"""
import json
from django.forms.fields import Field
from django.core import validators
from django.core.exceptions import ValidationError
from .widgets import JSignatureWidget
JSIGNATURE_EMPTY_VALUES = validators.EMPTY_VALUES + ('[]', )
class JSignatureField(Field):
"""
A field handling a signature capture field with with jSignature
"""
widget = JSignatureWidget()
def to_python(self, value):
"""
Validates that the input can be red as a JSON object. Returns a Python
datetime.date object.
"""
if value in JSIGNATURE_EMPTY_VALUES:
return None
try:
return json.loads(value)
except ValueError:
raise ValidationError('Invalid JSON format.')