diff options
| author | Karen Tracey <kmtracey@gmail.com> | 2008-11-14 15:40:26 +0000 |
|---|---|---|
| committer | Karen Tracey <kmtracey@gmail.com> | 2008-11-14 15:40:26 +0000 |
| commit | 385f2fe2b5b5589c443d5db928fda51482d59fce (patch) | |
| tree | a2e50c4ca6cd1a1fae986a3e27dd1fafdccbd73d | |
| parent | dbe18ce542618b38b7e2461696b4c2d0ba776668 (diff) | |
[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.
git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.0.X@9441 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/forms/models.py | 12 |
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) |
