diff options
Diffstat (limited to 'django/forms')
| -rw-r--r-- | django/forms/fields.py | 13 |
1 files changed, 12 insertions, 1 deletions
diff --git a/django/forms/fields.py b/django/forms/fields.py index ee9b8c62f1..afbf6146b0 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -38,7 +38,7 @@ __all__ = ( 'RegexField', 'EmailField', 'FileField', 'ImageField', 'URLField', 'BooleanField', 'NullBooleanField', 'ChoiceField', 'MultipleChoiceField', 'ComboField', 'MultiValueField', 'FloatField', 'DecimalField', - 'SplitDateTimeField', 'IPAddressField', 'FilePathField', + 'SplitDateTimeField', 'IPAddressField', 'FilePathField', 'SlugField', ) # These values, if given to to_python(), will trigger the self.required check. @@ -835,3 +835,14 @@ class IPAddressField(RegexField): def __init__(self, *args, **kwargs): super(IPAddressField, self).__init__(ipv4_re, *args, **kwargs) + +slug_re = re.compile(r'^[-\w]+$') + +class SlugField(RegexField): + default_error_messages = { + 'invalid': _(u"Enter a valid 'slug' consisting of letters, numbers," + u" underscores or hyphens."), + } + + def __init__(self, *args, **kwargs): + super(SlugField, self).__init__(slug_re, *args, **kwargs) |
