manager: makes sure slug is unique
This commit is contained in:
parent
78cf8156cd
commit
d96caac307
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue