def trim(self, value): value = slugify(u'%s'%value, rtx = self.rtxchar) if self.lower: value = value.lower() elif self.upper: value = value.upper() return value
def save(self, **kwargs): ''' In this case implicit is better than explicit. Django is changing in this function ''' model = self.__class__ slug = self.slug if not slug: slug = slugify(self.name) self.slug = model.objects.unique_slug(self.id, slug.lower()) super(SlugBase,self).save(**kwargs)
def clean_url_pattern(self): ''' Check for url patterns No need if: 1 - it is the root page 2 - oit is an application page Otherwise it is required ''' data = self.data value = data.get('url_pattern',None) if value: value = slugify(force_str(value)) if data.get('application_view',None): return value parent = self.get_parent() if parent: if not value: raise forms.ValidationError('url_pattern or application view must be provided if not a root page') page = parent.children.filter(url_pattern = value) if page and page[0].id != self.instance.id: raise forms.ValidationError("page %s already available" % page) return value
def _makename(self, name): name = name or self.name if not name: name = self.__class__.__name__ name = name.replace("-", "_").lower() return str(slugify(name, rtx="_"))