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...
1 parent fb1dd6b commit 1c4a9bd9ad1a8e61817c6aa2b0d8d0ad2c080047 @mjtamlyn mjtamlyn committed Aug 8, 2013
Showing with 15 additions and 3 deletions.
  1. +1 −1 django/forms/forms.py
  2. +1 −2 docs/releases/1.7.txt
  3. +13 −0 tests/forms_tests/tests/test_extra.py
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)

0 comments on commit 1c4a9bd

Please sign in to comment.