Author: jbronn Date: 2009-12-08 22:24:05 -0600 (Tue, 08 Dec 2009) New Revision: 11801
Modified: django/branches/releases/1.1.X/django/contrib/contenttypes/generic.py django/branches/releases/1.1.X/tests/regressiontests/generic_inline_admin/tests.py Log: [1.1.X] Fixed #12340 -- `BaseGenericInlineFormSet.get_queryset` now returns an ordered queryset. Backport of r11800 from trunk. Modified: django/branches/releases/1.1.X/django/contrib/contenttypes/generic.py =================================================================== --- django/branches/releases/1.1.X/django/contrib/contenttypes/generic.py 2009-12-09 03:49:25 UTC (rev 11800) +++ django/branches/releases/1.1.X/django/contrib/contenttypes/generic.py 2009-12-09 04:24:05 UTC (rev 11801) @@ -319,10 +319,13 @@ 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. Modified: django/branches/releases/1.1.X/tests/regressiontests/generic_inline_admin/tests.py =================================================================== --- django/branches/releases/1.1.X/tests/regressiontests/generic_inline_admin/tests.py 2009-12-09 03:49:25 UTC (rev 11800) +++ django/branches/releases/1.1.X/tests/regressiontests/generic_inline_admin/tests.py 2009-12-09 04:24:05 UTC (rev 11801) @@ -81,6 +81,11 @@ 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'] @@ -139,4 +144,4 @@ e = self._create_object(EpisodeExclude) response = self.client.get('/generic_inline_admin/admin/generic_inline_admin/episodeexclude/%s/' % e.pk) formset = response.context['inline_admin_formsets'][0].formset - self.failIf('url' in formset.forms[0], 'The formset has excluded "url" field.') \ No newline at end of file + self.failIf('url' in formset.forms[0], 'The formset has excluded "url" field.') -- You received this message because you are subscribed to the Google Groups "Django updates" group. To post to this group, send email to django-upda...@googlegroups.com. To unsubscribe from this group, send email to django-updates+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-updates?hl=en.