kmtr...@bcc190cf-cafb-0310-a4f2-bffc1f526a37  committed bfabc93

[1.0.X] Fixed #9076 -- Changed BaseInlineFormSet to not override BaseModelFormSet's get_queryset method. BaseInlineFormSet's method did not include a couple of fixes/enhancements that were made to the parent's method, resulting in excessive queries (some of which can return bad data due to #9006) for admin pages with inlines. Thanks bthomas for the initial patch.

r9440 from trunk.

  • Participants
  • Parent commits eda2db4
  • Branches releases/1.0.X

Comments (0)

Files changed (1)

File django/forms/

         self.save_as_new = save_as_new
         # is there a better way to get the object descriptor?
         self.rel_name = RelatedObject(, self.model,
-        super(BaseInlineFormSet, self).__init__(data, files, prefix=prefix or self.rel_name)
+        qs = self.model._default_manager.filter(**{ self.instance})
+        super(BaseInlineFormSet, self).__init__(data, files, prefix=prefix or self.rel_name,
+                                                queryset=qs)
     def _construct_forms(self):
         if self.save_as_new:
   [form.add_prefix(] = None
         return form
-    def get_queryset(self):
-        """
-        Returns this FormSet's queryset, but restricted to children of
-        self.instance
-        """
-        kwargs = { self.instance}
-        return self.model._default_manager.filter(**kwargs)
     def save_new(self, form, commit=True):
         kwargs = {}
         new_obj = self.model(**kwargs)