Commit 4d8a0f89 authored by Jannis Leidel's avatar Jannis Leidel
Browse files

Fixed #17594 -- Stopped ModelFormset.save from running a SELECT query by...

Fixed #17594 -- Stopped ModelFormset.save from running a SELECT query by relying on the fact that the initial form is already set. Thanks, tswicegood.

git-svn-id: http://code.djangoproject.com/svn/django/trunk@17434 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent 52d72a5a
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -591,7 +591,7 @@ class BaseModelFormSet(BaseFormSet):
    def save_existing_objects(self, commit=True):
        self.changed_objects = []
        self.deleted_objects = []
        if not self.get_queryset():
        if not self.initial_forms:
            return []

        saved_instances = []
+11 −0
Original line number Diff line number Diff line
@@ -249,6 +249,17 @@ class FormsetTests(TestCase):
        self.assertEqual(formset.extra_forms[0].initial['username'], "apollo11")
        self.assertTrue(u'value="apollo12"' in formset.extra_forms[1].as_p())

    def test_extraneous_query_is_not_run(self):
        Formset = modelformset_factory(Network)
        data = {u'test-TOTAL_FORMS': u'1',
                u'test-INITIAL_FORMS': u'0',
                u'test-MAX_NUM_FORMS': u'',
                u'test-0-name': u'Random Place', }
        with self.assertNumQueries(1):
            formset = Formset(data, prefix="test")
            formset.save()


class CustomWidget(forms.CharField):
    pass