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.


Reply via email to