diff --git a/fields.py b/fields.py index a4ea2d5..95d3890 100644 --- a/fields.py +++ b/fields.py @@ -2,7 +2,7 @@ import uuid import re from django.db import models -from django.utils.translation import ugettext as _ +from django.utils.translation import ugettext_lazy as _ from django.core.exceptions import ValidationError class EavSlugField(models.SlugField): @@ -26,4 +26,6 @@ class EavSlugField(models.SlugField): name = re.sub('\s+', '_', name) # Remove non alphanumeric characters - name = re.sub('[^\w]', '', name) + return re.sub('[^\w]', '', name) + + diff --git a/models.py b/models.py index a8934cf..90198e8 100644 --- a/models.py +++ b/models.py @@ -1,4 +1,5 @@ import re +from datetime import datetime from django.db import models from django.utils.translation import ugettext_lazy as _ @@ -21,7 +22,7 @@ class EavAttribute(models.Model): The A model in E-A-V. This holds the 'concepts' along with the data type something like: - >>> EavAttribute.objects.create(name='Height', datatype='float', slug='height') + >>> EavAttribute.objects.create(name='Height', datatype='float') >>> EavAttribute.objects.create(name='Color', datatype='text', slug='color') @@ -60,6 +61,10 @@ class EavAttribute(models.Model): datatype = models.CharField(_(u"data type"), max_length=6, choices=DATATYPE_CHOICES) + created = models.DateTimeField(_(u"created"), default=datetime.now) + + modified = models.DateTimeField(_(u"modified"), auto_now=True) + labels = models.ManyToManyField(EavAttributeLabel, verbose_name=_(u"labels")) @@ -137,6 +142,13 @@ class EavValue(models.Model): attribute = models.ForeignKey(EavAttribute) + def save(self, *args, **kwargs): + self.full_clean() + super(EavValue, self).save(*args, **kwargs) + + def clean(self): + pass + def _blank(self): self.value_text = self.value_float = self.value_int = self.value_date = None