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
This commit is contained in:
parent
52d72a5a3e
commit
4d8a0f8902
|
@ -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 = []
|
||||
|
|
|
@ -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
|
||||
|
||||
|
|
Loading…
Reference in New Issue