manager: makes sure slug is unique

This commit is contained in:
Frédéric Péters 2015-01-12 13:44:10 +01:00
parent 78cf8156cd
commit d96caac307
1 changed files with 10 additions and 0 deletions

View File

@ -16,6 +16,8 @@
from django import forms
from django.conf import settings
from django.core.exceptions import ValidationError
from django.utils.translation import ugettext_lazy as _
from combo.data.models import Page
@ -30,6 +32,14 @@ class PageForm(forms.ModelForm):
templates.sort(lambda x, y: cmp(x[1], y[1]))
self.fields['template_name'].widget = forms.Select(choices=templates)
def clean_slug(self):
value = self.cleaned_data.get('slug')
if self.instance.slug == value:
return value
if Page.objects.filter(slug=value).count() > 0:
raise ValidationError(_('Slug must be unique'), code='unique')
return value
class PageEditForm(PageForm):
class Meta:
model = Page