Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

newforms-admin: Fixed a problem with [6232] where an exception was ra…

…ised if ModelAdmin didn't specify ordering. Also, fixed #4926.

git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@6239 bcc190cf-cafb-0310-a4f2-bffc1f526a37
commit cead4bada947f163e928e5f41cedb5e22defb743 1 parent 5ec5814
Joseph Kocherhans jkocherhans authored
3  django/contrib/admin/options.py
View
@@ -292,7 +292,8 @@ def queryset(self, request):
Returns a QuerySet of all model instances that can be edited by the
admin site.
"""
- return self.model._default_manager.get_query_set().order_by(*self.ordering)
+ ordering = self.ordering or () # otherwise we might try to *None, which is bad ;)
+ return self.model._default_manager.get_query_set().order_by(*ordering)
def queryset_add(self, request):
"""
13 tests/regressiontests/admin_ordering/models.py
View
@@ -24,14 +24,21 @@ class Meta:
>>> b3 = Band(name='Van Halen', bio='', rank=2)
>>> b3.save()
+The default ordering should be by name, as specified in the inner Meta class.
+
+>>> ma = ModelAdmin(Band, None)
+>>> [b.name for b in ma.queryset(None)]
+[u'Aerosmith', u'Radiohead', u'Van Halen']
+
+
+Let's use a custom ModelAdmin that changes the ordering, and make sure it
+actually changes.
+
>>> class BandAdmin(ModelAdmin):
... ordering = ('rank',) # default ordering is ('name',)
...
>>> ma = BandAdmin(Band, None)
->>> [b.name for b in Band.objects.all()]
-[u'Aerosmith', u'Radiohead', u'Van Halen']
-
>>> [b.name for b in ma.queryset(None)]
[u'Radiohead', u'Van Halen', u'Aerosmith']
Please sign in to comment.
Something went wrong with that request. Please try again.