summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorClaude Paroz <claude@2xlibre.net>2013-12-04 20:59:05 +0100
committerClaude Paroz <claude@2xlibre.net>2014-01-11 15:50:34 +0100
commit0179852d7faf461d55cf3ae69393abb3f3cd2910 (patch)
tree918af143a73da8e7ef8d6d46e077174410cde59e
parent1e9e7351f88a59261da6e616934c8283a6e3e565 (diff)
Fixed #8898 -- Obsoleted SplitDateTimeWidget usage with DateTimeField
Thanks Tim Graham for the review.
-rw-r--r--django/forms/fields.py4
-rw-r--r--docs/internals/deprecation.txt3
-rw-r--r--docs/ref/forms/fields.txt6
-rw-r--r--docs/releases/1.7.txt7
-rw-r--r--tests/forms_tests/tests/test_widgets.py21
5 files changed, 33 insertions, 8 deletions
diff --git a/django/forms/fields.py b/django/forms/fields.py
index 100264247a..1ce36c199c 100644
--- a/django/forms/fields.py
+++ b/django/forms/fields.py
@@ -486,6 +486,10 @@ class DateTimeField(BaseTemporalField):
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.',
+ PendingDeprecationWarning, 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:
diff --git a/docs/internals/deprecation.txt b/docs/internals/deprecation.txt
index 514561e1ff..34e974cea3 100644
--- a/docs/internals/deprecation.txt
+++ b/docs/internals/deprecation.txt
@@ -215,6 +215,9 @@ these changes.
* ``django.forms.get_declared_fields`` will be removed.
+* The ability to use a ``SplitDateTimeWidget`` with ``DateTimeField`` will be
+ removed.
+
* The ``WSGIRequest.REQUEST`` property will be removed.
* The class ``django.utils.datastructures.MergeDict`` will be removed.
diff --git a/docs/ref/forms/fields.txt b/docs/ref/forms/fields.txt
index 62273fd38e..42d639e8c7 100644
--- a/docs/ref/forms/fields.txt
+++ b/docs/ref/forms/fields.txt
@@ -458,6 +458,12 @@ For each field, we describe the default widget used if you don't specify
See also :ref:`format localization <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/docs/releases/1.7.txt b/docs/releases/1.7.txt
index 9fcad38931..fdbf63526e 100644
--- a/docs/releases/1.7.txt
+++ b/docs/releases/1.7.txt
@@ -1063,3 +1063,10 @@ the arguments may have been evaluated at query time.
The ``ADMIN_FOR`` feature, part of the admindocs, has been removed. You can
remove the setting from your configuration at your convenience.
+
+``SplitDateTimeWidget`` with ``DateTimeField``
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+``SplitDateTimeWidget`` support in :class:`~django.forms.DateTimeField` is
+deprecated, use ``SplitDateTimeWidget`` with
+:class:`~django.forms.SplitDateTimeField` instead.
diff --git a/tests/forms_tests/tests/test_widgets.py b/tests/forms_tests/tests/test_widgets.py
index 4bbed3f0a9..96a9f0dcb1 100644
--- a/tests/forms_tests/tests/test_widgets.py
+++ b/tests/forms_tests/tests/test_widgets.py
@@ -3,6 +3,7 @@ from __future__ import unicode_literals
import copy
import datetime
+import warnings
from django.contrib.admin.tests import AdminSeleniumWebDriverTestCase
from django.core.files.uploadedfile import SimpleUploadedFile
@@ -1092,18 +1093,22 @@ class WidgetTests(TestCase):
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())
+ with warnings.catch_warnings():
+ warnings.filterwarnings("ignore", category=PendingDeprecationWarning)
+ 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())
+ with warnings.catch_warnings():
+ warnings.filterwarnings("ignore", category=PendingDeprecationWarning)
+ form = SplitDateRequiredForm({'field': ''})
+ self.assertFalse(form.is_valid())
+ form = SplitDateRequiredForm({'field': ['', '']})
+ self.assertFalse(form.is_valid())
class LiveWidgetTests(AdminSeleniumWebDriverTestCase):