Split forms into containers, entities, and fields. Split attribute fields out from...
[philo.git] / forms / fields.py
diff --git a/forms/fields.py b/forms/fields.py
new file mode 100644 (file)
index 0000000..9da6552
--- /dev/null
@@ -0,0 +1,18 @@
+from django import forms
+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