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.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
@@ -522,6 +522,15 @@ class SlugTreeEntity(TreeEntity):
                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