diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py
index 0c68428..7b24ed5 100644
--- a/django/db/models/fields/__init__.py
+++ b/django/db/models/fields/__init__.py
@@ -597,8 +597,9 @@ class DateField(Field):
 
     empty_strings_allowed = False
     default_error_messages = {
-        'invalid': _('Enter a valid date in YYYY-MM-DD format.'),
-        'invalid_date': _('Invalid date: %s'),
+        'invalid': _(u"'%s' value has an invalid date format. It must be "
+                     u"in YYYY-MM-DD format."),
+        'invalid_date': _(u"'%s' value is an invalid date: %s"),
     }
     def __init__(self, verbose_name=None, name=None, auto_now=False, auto_now_add=False, **kwargs):
         self.auto_now, self.auto_now_add = auto_now, auto_now_add
@@ -620,7 +621,8 @@ class DateField(Field):
             return value
 
         if not ansi_date_re.search(value):
-            raise exceptions.ValidationError(self.error_messages['invalid'])
+            msg = self.error_messages['invalid'] % str(value)
+            raise exceptions.ValidationError(msg)
         # Now that we have the date string in YYYY-MM-DD format, check to make
         # sure it's a valid date.
         # We could use time.strptime here and catch errors, but datetime.date
@@ -629,7 +631,7 @@ class DateField(Field):
         try:
             return datetime.date(year, month, day)
         except ValueError, e:
-            msg = self.error_messages['invalid_date'] % _(str(e))
+            msg = self.error_messages['invalid_date'] % (str(value), _(str(e)))
             raise exceptions.ValidationError(msg)
 
     def pre_save(self, model_instance, add):
@@ -679,7 +681,8 @@ class DateField(Field):
 
 class DateTimeField(DateField):
     default_error_messages = {
-        'invalid': _(u'Enter a valid date/time in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format.'),
+        'invalid': _(u"'%s' value has an invalid valid date/time format. "
+                     u"It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."),
     }
     description = _("Date (with time)")
 
@@ -702,24 +705,26 @@ class DateTimeField(DateField):
                 value, usecs = value.split('.')
                 usecs = int(usecs)
             except ValueError:
-                raise exceptions.ValidationError(self.error_messages['invalid'])
+                raise exceptions.ValidationError(
+                    self.error_messages['invalid'] % str(value))
         else:
             usecs = 0
         kwargs = {'microsecond': usecs}
         try: # Seconds are optional, so try converting seconds first.
-            return datetime.datetime(*time.strptime(value, '%Y-%m-%d %H:%M:%S')[:6],
-                                     **kwargs)
+            return datetime.datetime(
+                *time.strptime(value, '%Y-%m-%d %H:%M:%S')[:6], **kwargs)
 
         except ValueError:
             try: # Try without seconds.
-                return datetime.datetime(*time.strptime(value, '%Y-%m-%d %H:%M')[:5],
-                                         **kwargs)
+                return datetime.datetime(
+                    *time.strptime(value, '%Y-%m-%d %H:%M')[:5], **kwargs)
             except ValueError: # Try without hour/minutes/seconds.
                 try:
-                    return datetime.datetime(*time.strptime(value, '%Y-%m-%d')[:3],
-                                             **kwargs)
+                    return datetime.datetime(
+                        *time.strptime(value, '%Y-%m-%d')[:3], **kwargs)
                 except ValueError:
-                    raise exceptions.ValidationError(self.error_messages['invalid'])
+                    raise exceptions.ValidationError(
+                        self.error_messages['invalid'] % str(value))
 
     def pre_save(self, model_instance, add):
         if self.auto_now or (self.auto_now_add and add):
diff --git a/tests/modeltests/validation/test_error_messages.py b/tests/modeltests/validation/test_error_messages.py
index 45d0327..a4fb8e0 100644
--- a/tests/modeltests/validation/test_error_messages.py
+++ b/tests/modeltests/validation/test_error_messages.py
@@ -55,3 +55,47 @@ class ValidationMessagesTest(TestCase):
         except ValidationError, e:
             self.assertEqual(e.messages,
                         [u"'foo' value must be either None, True or False."])
+
+    def test_date_field_raises_error_message(self):
+        f = models.DateField()
+        self.assertRaises(ValidationError, f.clean, 'foo', None)
+        try:
+            f.clean('foo', None)
+        except ValidationError, e:
+            self.assertEqual(e.messages, [
+                u"'foo' value has an invalid date format. "
+                u"It must be in YYYY-MM-DD format."])
+
+        self.assertRaises(ValidationError, f.clean, 'aaaa-10-10', None)
+        try:
+            f.clean('aaaa-10-10', None)
+        except ValidationError, e:
+            self.assertEqual(e.messages, [
+                u"'aaaa-10-10' value has an invalid date format. "
+                u"It must be in YYYY-MM-DD format."])
+
+        self.assertRaises(ValidationError, f.clean, '2011-13-10', None)
+        try:
+            f.clean('2011-13-10', None)
+        except ValidationError, e:
+            self.assertEqual(e.messages, [
+                u"'2011-13-10' value is an invalid date: "
+                u"month must be in 1..12"])
+
+        self.assertRaises(ValidationError, f.clean, '2011-10-32', None)
+        try:
+            f.clean('2011-10-32', None)
+        except ValidationError, e:
+            self.assertEqual(e.messages, [
+                u"'2011-10-32' value is an invalid date: "
+                u"day is out of range for month"])
+
+    def test_datetime_field_raises_error_message(self):
+        f = models.DateTimeField()
+        self.assertRaises(ValidationError, f.clean, 'foo', None)
+        try:
+            f.clean('foo', None)
+        except ValidationError, e:
+            self.assertEqual(e.messages, [
+                u"'foo' value has an invalid valid date/time format. "
+                u"It must be in YYYY-MM-DD HH:MM[:ss[.uuuuuu]] format."])
\ No newline at end of file
diff --git a/tests/modeltests/validation/tests.py b/tests/modeltests/validation/tests.py
index e6e5d97..5b20df4 100644
--- a/tests/modeltests/validation/tests.py
+++ b/tests/modeltests/validation/tests.py
@@ -12,7 +12,7 @@ from modeltests.validation.validators import TestModelsWithValidators
 from modeltests.validation.test_unique import (GetUniqueCheckTests,
     PerformUniqueChecksTest)
 from modeltests.validation.test_custom_messages import CustomMessagesTest
-
+from modeltests.validation.test_error_messages import ValidationMessagesTest
 
 class BaseModelValidationTests(ValidationTestCase):
 
