Skip to content

Commit

Permalink
Revert change to the default Form.clean()
Browse files Browse the repository at this point in the history
This means it doesn't break for people who are doing
`cleaned_data = super(FooForm, self).clean()`.
  • Loading branch information
mjtamlyn committed Aug 8, 2013
1 parent fb1dd6b commit 1c4a9bd
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 3 deletions.
2 changes: 1 addition & 1 deletion django/forms/forms.py
Expand Up @@ -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):
"""
Expand Down
3 changes: 1 addition & 2 deletions docs/releases/1.7.txt
Expand Up @@ -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
=====================================
Expand Down
13 changes: 13 additions & 0 deletions tests/forms_tests/tests/test_extra.py
Expand Up @@ -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)
Expand Down

0 comments on commit 1c4a9bd

Please sign in to comment.