Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Revert change to the default Form.clean()

This means it doesn't break for people who are doing
`cleaned_data = super(FooForm, self).clean()`.
  • Loading branch information...
commit 1c4a9bd9ad1a8e61817c6aa2b0d8d0ad2c080047 1 parent fb1dd6b
Marc Tamlyn mjtamlyn authored
2  django/forms/forms.py
View
@@ -318,7 +318,7 @@ def clean(self):
not be associated with a particular field; it will have a special-case
association with the field named '__all__'.
"""
- pass
+ return self.cleaned_data
def has_changed(self):
"""
3  docs/releases/1.7.txt
View
@@ -129,8 +129,7 @@ Minor features
* The :meth:`~django.forms.Form.clean` method on a form no longer needs to
return ``self.cleaned_data``. If it does return a changed dictionary then
- that will still be used. The default implementation no longer returns
- ``self.cleaned_data``.
+ that will still be used.
Backwards incompatible changes in 1.7
=====================================
13 tests/forms_tests/tests/test_extra.py
View
@@ -620,6 +620,19 @@ def clean(self):
self.assertTrue(f.is_valid())
self.assertEqual(f.cleaned_data['username'], 'sirrobin')
+ def test_changing_cleaned_data_nothing_returned(self):
+ class UserForm(Form):
+ username = CharField(max_length=10)
+ password = CharField(widget=PasswordInput)
+
+ def clean(self):
+ self.cleaned_data['username'] = self.cleaned_data['username'].lower()
+ # don't return anything
+
+ f = UserForm({'username': 'SirRobin', 'password': 'blue'})
+ self.assertTrue(f.is_valid())
+ self.assertEqual(f.cleaned_data['username'], 'sirrobin')
+
def test_changing_cleaned_data_in_clean(self):
class UserForm(Form):
username = CharField(max_length=10)
Please sign in to comment.
Something went wrong with that request. Please try again.