From c2ba59fc1da5287d6286e2c2aca4083d5bafe056 Mon Sep 17 00:00:00 2001 From: Gary Wilson Jr Date: Wed, 27 Aug 2008 07:19:44 +0000 Subject: Removed oldforms, validators, and related code: * Removed `Manipulator`, `AutomaticManipulator`, and related classes. * Removed oldforms specific bits from model fields: * Removed `validator_list` and `core` arguments from constructors. * Removed the methods: * `get_manipulator_field_names` * `get_manipulator_field_objs` * `get_manipulator_fields` * `get_manipulator_new_data` * `prepare_field_objs_and_params` * `get_follow` * Renamed `flatten_data` method to `value_to_string` for better alignment with its use by the serialization framework, which was the only remaining code using `flatten_data`. * Removed oldforms methods from `django.db.models.Options` class: `get_followed_related_objects`, `get_data_holders`, `get_follow`, and `has_field_type`. * Removed oldforms-admin specific options from `django.db.models.fields.related` classes: `num_in_admin`, `min_num_in_admin`, `max_num_in_admin`, `num_extra_on_change`, and `edit_inline`. * Serialization framework * `Serializer.get_string_value` now calls the model fields' renamed `value_to_string` methods. * Removed a special-casing of `models.DateTimeField` in `core.serializers.base.Serializer.get_string_value` that's handled by `django.db.models.fields.DateTimeField.value_to_string`. * Removed `django.core.validators`: * Moved `ValidationError` exception to `django.core.exceptions`. * For the couple places that were using validators, brought over the necessary code to maintain the same functionality. * Introduced a SlugField form field for validation and to compliment the SlugField model field (refs #8040). * Removed an oldforms-style model creation hack (refs #2160). git-svn-id: http://code.djangoproject.com/svn/django/trunk@8616 bcc190cf-cafb-0310-a4f2-bffc1f526a37 --- django/forms/fields.py | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) (limited to 'django/forms') 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) -- cgit v1.3