diff --git a/src/c3nav/editor/forms.py b/src/c3nav/editor/forms.py index b2ae08bc..ee97912c 100644 --- a/src/c3nav/editor/forms.py +++ b/src/c3nav/editor/forms.py @@ -1,6 +1,7 @@ import json import operator import os +from django.core.validators import validate_slug from functools import reduce from itertools import chain @@ -176,6 +177,7 @@ class EditorFormBase(I18nModelFormMixin, ModelForm): self.add_redirect_slugs = None self.remove_redirect_slugs = None if 'slug' in self.fields: + self.fields['slug'].validators.append(validate_slug) self.redirect_slugs = sorted(self.instance.redirects.values_list('slug', flat=True)) self.fields['redirect_slugs'] = CharField(label=_('Redirecting Slugs (comma seperated)'), required=False, initial=','.join(self.redirect_slugs)) diff --git a/src/c3nav/mapdata/migrations/0008_validate_slug.py b/src/c3nav/mapdata/migrations/0008_validate_slug.py new file mode 100644 index 00000000..a57943ef --- /dev/null +++ b/src/c3nav/mapdata/migrations/0008_validate_slug.py @@ -0,0 +1,19 @@ +# Generated by Django 2.1.4 on 2018-12-25 22:01 + +import c3nav.mapdata.models.locations +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('mapdata', '0007_location_group_help_text'), + ] + + operations = [ + migrations.AlterField( + model_name='locationslug', + name='slug', + field=models.SlugField(blank=True, null=True, unique=True, validators=[c3nav.mapdata.models.locations.validate_slug], verbose_name='Slug'), + ), + ]