X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/781cf86e935c66069acd17878a9f3de7cc6ec231..d619bfea3c16942826ae2df297f7e1660f63f8ac:/models/base.py diff --git a/models/base.py b/models/base.py index 9da9230..718429b 100644 --- a/models/base.py +++ b/models/base.py @@ -4,14 +4,16 @@ from django.contrib.contenttypes import generic from django.utils import simplejson as json from django.core.exceptions import ObjectDoesNotExist from philo.exceptions import AncestorDoesNotExist +from philo.models.fields import JSONField from philo.utils import ContentTypeRegistryLimiter from philo.signals import entity_class_prepared +from philo.validators import json_validator from UserDict import DictMixin class Tag(models.Model): - name = models.CharField(max_length=250) - slug = models.SlugField(unique=True) + name = models.CharField(max_length=255) + slug = models.SlugField(max_length=255, unique=True) def __unicode__(self): return self.name @@ -36,18 +38,7 @@ class Attribute(models.Model): entity_object_id = models.PositiveIntegerField(verbose_name='Entity ID') entity = generic.GenericForeignKey('entity_content_type', 'entity_object_id') key = models.CharField(max_length=255) - json_value = models.TextField(verbose_name='Value (JSON)', help_text='This value must be valid JSON.') - - def get_value(self): - return json.loads(self.json_value) - - def set_value(self, value): - self.json_value = json.dumps(value) - - def delete_value(self): - self.json_value = json.dumps(None) - - value = property(get_value, set_value, delete_value) + value = JSONField() #verbose_name='Value (JSON)', help_text='This value must be valid JSON.') def __unicode__(self): return u'"%s": %s' % (self.key, self.value) @@ -241,7 +232,7 @@ class TreeManager(models.Manager): class TreeModel(models.Model): objects = TreeManager() parent = models.ForeignKey('self', related_name='children', null=True, blank=True) - slug = models.SlugField() + slug = models.SlugField(max_length=255) def has_ancestor(self, ancestor): parent = self