summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaren Tracey <kmtracey@gmail.com>2008-11-14 15:37:59 +0000
committerKaren Tracey <kmtracey@gmail.com>2008-11-14 15:37:59 +0000
commitbca14cd3c8685f0c8d6a24583e3de33f94f8910b (patch)
treef981700db766f1b8407c4f587c83e3e1e52a3e53
parent02e67bba4742e5024c843cb96da618b8e5fdf5da (diff)
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.
git-svn-id: http://code.djangoproject.com/svn/django/trunk@9440 bcc190cf-cafb-0310-a4f2-bffc1f526a37
-rw-r--r--django/forms/models.py12
1 files changed, 3 insertions, 9 deletions
diff --git a/django/forms/models.py b/django/forms/models.py
index 299991e509..65f20ad303 100644
--- a/django/forms/models.py
+++ b/django/forms/models.py
@@ -463,7 +463,9 @@ class BaseInlineFormSet(BaseModelFormSet):
self.save_as_new = save_as_new
# is there a better way to get the object descriptor?
self.rel_name = RelatedObject(self.fk.rel.to, self.model, self.fk).get_accessor_name()
- super(BaseInlineFormSet, self).__init__(data, files, prefix=prefix or self.rel_name)
+ qs = self.model._default_manager.filter(**{self.fk.name: 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:
@@ -479,14 +481,6 @@ class BaseInlineFormSet(BaseModelFormSet):
form.data[form.add_prefix(self._pk_field.name)] = None
return form
- def get_queryset(self):
- """
- Returns this FormSet's queryset, but restricted to children of
- self.instance
- """
- kwargs = {self.fk.name: self.instance}
- return self.model._default_manager.filter(**kwargs)
-
def save_new(self, form, commit=True):
kwargs = {self.fk.get_attname(): self.instance.pk}
new_obj = self.model(**kwargs)