X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/82b08f79564159d7acbcaf255ed1ac1fb4882e64..d19e216035b14d8f60b24dda0c0670e6997f16ce:/philo/forms/fields.py diff --git a/philo/forms/fields.py b/philo/forms/fields.py new file mode 100644 index 0000000..b148947 --- /dev/null +++ b/philo/forms/fields.py @@ -0,0 +1,19 @@ +from django import forms +from django.core.exceptions import ValidationError +from django.utils import simplejson as json +from philo.validators import json_validator + + +__all__ = ('JSONFormField',) + + +class JSONFormField(forms.Field): + default_validators = [json_validator] + + def clean(self, value): + if value == '' and not self.required: + return None + try: + return json.loads(value) + except Exception, e: + raise ValidationError(u'JSON decode error: %s' % e) \ No newline at end of file