Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
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
@mjtamlyn mjtamlyn authored
View
2  django/forms/forms.py
@@ -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):
"""
View
3  docs/releases/1.7.txt
@@ -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
=====================================
View
13 tests/forms_tests/tests/test_extra.py
@@ -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.