Commit 58c19c32 authored by Justin Bronn's avatar Justin Bronn
Browse files

[1.1.X] Fixed #12340 -- `BaseGenericInlineFormSet.get_queryset` now returns an ordered queryset.

Backport of r11800 from trunk.


git-svn-id: http://code.djangoproject.com/svn/django/branches/releases/1.1.X@11801 bcc190cf-cafb-0310-a4f2-bffc1f526a37
parent b24bb686
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -319,10 +319,13 @@ class BaseGenericInlineFormSet(BaseModelFormSet):
        from django.contrib.contenttypes.models import ContentType
        if self.instance is None or self.instance.pk is None:
            return self.model._default_manager.none()
        return self.model._default_manager.filter(**{
        qs = self.model._default_manager.filter(**{
            self.ct_field.name: ContentType.objects.get_for_model(self.instance),
            self.ct_fk_field.name: self.instance.pk,
        })
        if not qs.ordered:
            qs = qs.order_by(self.model._meta.pk.name)
        return qs

    def save_new(self, form, commit=True):
        # Avoid a circular import.
+6 −1
Original line number Diff line number Diff line
@@ -81,6 +81,11 @@ class GenericAdminViewTest(TestCase):
        inline_formset = generic_inlineformset_factory(Media,
            exclude=('url',))

        # Regression test for #12340.
        e = Episode.objects.get(name='This Week in Django')
        formset = inline_formset(instance=e)
        self.failUnless(formset.get_queryset().ordered)

class GenericInlineAdminParametersTest(TestCase):
    fixtures = ['users.xml']