Added 'unique' check to SlugTreeEntity for cases where the parent is None. Set tagCre...
[philo.git] / philo / models / base.py
index 0218261..f9c22f9 100644 (file)
@@ -1,7 +1,7 @@
 from django import forms
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.contenttypes import generic
 from django import forms
 from django.contrib.contenttypes.models import ContentType
 from django.contrib.contenttypes import generic
-from django.core.exceptions import ObjectDoesNotExist
+from django.core.exceptions import ValidationError
 from django.core.validators import RegexValidator
 from django.db import models
 from django.utils import simplejson as json
 from django.core.validators import RegexValidator
 from django.db import models
 from django.utils import simplejson as json
@@ -522,6 +522,15 @@ class SlugTreeEntity(TreeEntity):
                return super(SlugTreeEntity, self).get_path(root, pathsep, field)
        path = property(get_path)
        
                return super(SlugTreeEntity, self).get_path(root, pathsep, field)
        path = property(get_path)
        
+       def clean(self):
+               if self.parent is None:
+                       try:
+                               self._default_manager.exclude(pk=self.pk).get(slug=self.slug, parent__isnull=True)
+                       except self.DoesNotExist:
+                               pass
+                       else:
+                               raise ValidationError(self.unique_error_message(self.__class__, ('parent', 'slug')))
+       
        class Meta:
                unique_together = ('parent', 'slug')
                abstract = True
\ No newline at end of file
        class Meta:
                unique_together = ('parent', 'slug')
                abstract = True
\ No newline at end of file