Commit 1c4a9bd9 authored by Marc Tamlyn's avatar Marc Tamlyn
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()`.
parent fb1dd6b1
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -318,7 +318,7 @@ class BaseForm(object):
        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):
        """
+1 −2
Original line number Diff line number Diff line
@@ -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 −0
Original line number Diff line number Diff line
@@ -620,6 +620,19 @@ class FormsExtraTestCase(TestCase, AssertFormErrorsMixin):
        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)