From 714277cb4cedd8290101f9c6b3e6382f192ae177 Mon Sep 17 00:00:00 2001 From: Tim Graham Date: Sat, 17 Jan 2015 18:49:44 -0500 Subject: [PATCH] Removed support for SplitDateTimeWidget with DateTimeField per deprecation timeline. refs #8898 --- django/forms/fields.py | 12 ------------ docs/ref/forms/fields.txt | 6 ------ tests/forms_tests/tests/test_widgets.py | 24 ++---------------------- 3 files changed, 2 insertions(+), 40 deletions(-) diff --git a/django/forms/fields.py b/django/forms/fields.py index 891d8ccd6ee..ff8d9d826ad 100644 --- a/django/forms/fields.py +++ b/django/forms/fields.py @@ -501,18 +501,6 @@ class DateTimeField(BaseTemporalField): if isinstance(value, datetime.date): result = datetime.datetime(value.year, value.month, value.day) return from_current_timezone(result) - if isinstance(value, list): - # Input comes from a SplitDateTimeWidget, for example. So, it's two - # components: date and time. - warnings.warn( - 'Using SplitDateTimeWidget with DateTimeField is deprecated. ' - 'Use SplitDateTimeField instead.', - RemovedInDjango19Warning, stacklevel=2) - if len(value) != 2: - raise ValidationError(self.error_messages['invalid'], code='invalid') - if value[0] in self.empty_values and value[1] in self.empty_values: - return None - value = '%s %s' % tuple(value) result = super(DateTimeField, self).to_python(value) return from_current_timezone(result) diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt index b63826d9b19..eee3f9f9b83 100644 --- a/docs/ref/forms/fields.txt +++ b/docs/ref/forms/fields.txt @@ -502,12 +502,6 @@ For each field, we describe the default widget used if you don't specify See also :ref:`format localization `. - .. deprecated:: 1.7 - - The ability to use :class:`SplitDateTimeWidget` with ``DateTimeField`` - has been deprecated and will be removed in Django 1.9. Use - :class:`SplitDateTimeField` instead. - ``DecimalField`` ~~~~~~~~~~~~~~~~ diff --git a/tests/forms_tests/tests/test_widgets.py b/tests/forms_tests/tests/test_widgets.py index 5742daf32f4..efaefe1180e 100644 --- a/tests/forms_tests/tests/test_widgets.py +++ b/tests/forms_tests/tests/test_widgets.py @@ -9,17 +9,16 @@ from django.core.files.uploadedfile import SimpleUploadedFile from django.core.urlresolvers import reverse from django.forms import ( BooleanField, CheckboxInput, CheckboxSelectMultiple, ChoiceField, - ClearableFileInput, DateInput, DateTimeField, DateTimeInput, FileInput, + ClearableFileInput, DateInput, DateTimeInput, FileInput, Form, HiddenInput, MultipleHiddenInput, MultiWidget, NullBooleanSelect, PasswordInput, RadioSelect, Select, SelectMultiple, SplitDateTimeWidget, Textarea, TextInput, TimeInput, ) from django.forms.widgets import RadioFieldRenderer -from django.utils.deprecation import RemovedInDjango19Warning from django.utils.safestring import mark_safe, SafeData from django.utils import six from django.utils.translation import activate, deactivate, override -from django.test import TestCase, ignore_warnings, override_settings +from django.test import TestCase, override_settings from django.utils.encoding import python_2_unicode_compatible, force_text from ..models import Article @@ -1111,25 +1110,6 @@ class WidgetTests(TestCase): # to make a copy of its sub-widgets when it is copied. self.assertEqual(w1.choices, [1, 2, 3]) - @ignore_warnings(category=RemovedInDjango19Warning) - def test_13390(self): - # See ticket #13390 - class SplitDateForm(Form): - field = DateTimeField(widget=SplitDateTimeWidget, required=False) - - form = SplitDateForm({'field': ''}) - self.assertTrue(form.is_valid()) - form = SplitDateForm({'field': ['', '']}) - self.assertTrue(form.is_valid()) - - class SplitDateRequiredForm(Form): - field = DateTimeField(widget=SplitDateTimeWidget, required=True) - - form = SplitDateRequiredForm({'field': ''}) - self.assertFalse(form.is_valid()) - form = SplitDateRequiredForm({'field': ['', '']}) - self.assertFalse(form.is_valid()) - @override_settings(ROOT_URLCONF='forms_tests.urls') class LiveWidgetTests(AdminSeleniumWebDriverTestCase):