summaryrefslogtreecommitdiff
path: root/parts/django/tests/modeltests/field_subclassing/fields.py
diff options
context:
space:
mode:
Diffstat (limited to 'parts/django/tests/modeltests/field_subclassing/fields.py')
-rw-r--r--parts/django/tests/modeltests/field_subclassing/fields.py74
1 files changed, 0 insertions, 74 deletions
diff --git a/parts/django/tests/modeltests/field_subclassing/fields.py b/parts/django/tests/modeltests/field_subclassing/fields.py
deleted file mode 100644
index 8675b31..0000000
--- a/parts/django/tests/modeltests/field_subclassing/fields.py
+++ /dev/null
@@ -1,74 +0,0 @@
-from django.core.exceptions import FieldError
-from django.db import models
-from django.utils import simplejson as json
-from django.utils.encoding import force_unicode
-
-
-class Small(object):
- """
- A simple class to show that non-trivial Python objects can be used as
- attributes.
- """
- def __init__(self, first, second):
- self.first, self.second = first, second
-
- def __unicode__(self):
- return u'%s%s' % (force_unicode(self.first), force_unicode(self.second))
-
- def __str__(self):
- return unicode(self).encode('utf-8')
-
-class SmallField(models.Field):
- """
- Turns the "Small" class into a Django field. Because of the similarities
- with normal character fields and the fact that Small.__unicode__ does
- something sensible, we don't need to implement a lot here.
- """
- __metaclass__ = models.SubfieldBase
-
- def __init__(self, *args, **kwargs):
- kwargs['max_length'] = 2
- super(SmallField, self).__init__(*args, **kwargs)
-
- def get_internal_type(self):
- return 'CharField'
-
- def to_python(self, value):
- if isinstance(value, Small):
- return value
- return Small(value[0], value[1])
-
- def get_db_prep_save(self, value):
- return unicode(value)
-
- def get_prep_lookup(self, lookup_type, value):
- if lookup_type == 'exact':
- return force_unicode(value)
- if lookup_type == 'in':
- return [force_unicode(v) for v in value]
- if lookup_type == 'isnull':
- return []
- raise TypeError('Invalid lookup type: %r' % lookup_type)
-
-class SmallerField(SmallField):
- pass
-
-
-class JSONField(models.TextField):
- __metaclass__ = models.SubfieldBase
-
- description = ("JSONField automatically serializes and desializes values to "
- "and from JSON.")
-
- def to_python(self, value):
- if not value:
- return None
-
- if isinstance(value, basestring):
- value = json.loads(value)
- return value
-
- def get_db_prep_save(self, value):
- if value is None:
- return None
- return json.dumps(value)