Author: jbronn
Date: 2009-12-08 21:49:25 -0600 (Tue, 08 Dec 2009)
New Revision: 11800
Modified:
django/trunk/django/contrib/contenttypes/generic.py
django/trunk/tests/regressiontests/generic_inline_admin/tests.py
Log:
Fixed #12340 -- `BaseGenericInlineFormSet.get_queryset` now returns an ordered
queryset.
Modified: django/trunk/django/contrib/contenttypes/generic.py
===================================================================
--- django/trunk/django/contrib/contenttypes/generic.py 2009-12-09 01:34:47 UTC
(rev 11799)
+++ django/trunk/django/contrib/contenttypes/generic.py 2009-12-09 03:49:25 UTC
(rev 11800)
@@ -317,10 +317,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/trunk/tests/regressiontests/generic_inline_admin/tests.py
===================================================================
--- django/trunk/tests/regressiontests/generic_inline_admin/tests.py
2009-12-09 01:34:47 UTC (rev 11799)
+++ django/trunk/tests/regressiontests/generic_inline_admin/tests.py
2009-12-09 03:49:25 UTC (rev 11800)
@@ -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 [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/django-updates?hl=en.