Add Django 1.10 compatibility

This commit is contained in:
Florent Lebreton
2016-10-28 10:41:03 +02:00
parent 6da81f2115
commit 86e3e185f7
3 changed files with 32 additions and 28 deletions

View File

@@ -13,7 +13,7 @@ from .forms import (
JSIGNATURE_EMPTY_VALUES)
class JSignatureField(six.with_metaclass(models.SubfieldBase, models.Field)):
class JSignatureField(models.Field):
"""
A model field handling a signature captured with jSignature
"""
@@ -23,10 +23,6 @@ class JSignatureField(six.with_metaclass(models.SubfieldBase, models.Field)):
return 'TextField'
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
elif isinstance(value, list):
@@ -36,6 +32,14 @@ class JSignatureField(six.with_metaclass(models.SubfieldBase, models.Field)):
except ValueError:
raise ValidationError('Invalid JSON format.')
def from_db_value(self, value, expression, connection, context):
if value in JSIGNATURE_EMPTY_VALUES:
return None
try:
return json.loads(value)
except ValueError:
raise ValidationError('Invalid JSON format.')
def get_prep_value(self, value):
if value in JSIGNATURE_EMPTY_VALUES:
return None
@@ -50,8 +54,3 @@ class JSignatureField(six.with_metaclass(models.SubfieldBase, models.Field)):
defaults.update(kwargs)
return super(JSignatureField, self).formfield(**defaults)
try:
from south.modelsinspector import add_introspection_rules
add_introspection_rules([], ["jsignature.fields.JSignatureField"])
except ImportError:
pass