+class AttributeValue(models.Model):
+ attribute = generic.GenericRelation('Attribute', content_type_field='value_content_type', object_id_field='value_object_id')
+ def apply_data(self, data):
+ raise NotImplementedError
+
+ def value_formfield(self, **kwargs):
+ raise NotImplementedError
+
+ def __unicode__(self):
+ return unicode(self.value)
+
+ class Meta:
+ abstract = True
+
+
+attribute_value_limiter = ContentTypeSubclassLimiter(AttributeValue)
+
+
+class JSONValue(AttributeValue):