summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Kocherhans <joseph@jkocherhans.com>2007-09-14 22:41:09 +0000
committerJoseph Kocherhans <joseph@jkocherhans.com>2007-09-14 22:41:09 +0000
commitcead4bada947f163e928e5f41cedb5e22defb743 (patch)
tree35720fc7ef6dc0b561350cc032ec2c1cb1046c31
parent5ec5814bf97844db349b0e418668cc4c3edfbea4 (diff)
newforms-admin: Fixed a problem with [6232] where an exception was raised 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
-rw-r--r--django/contrib/admin/options.py3
-rw-r--r--tests/regressiontests/admin_ordering/models.py13
2 files changed, 12 insertions, 4 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py
index ad10efda9d..72392f4124 100644
--- a/django/contrib/admin/options.py
+++ b/django/contrib/admin/options.py
@@ -292,7 +292,8 @@ class ModelAdmin(BaseModelAdmin):
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):
"""
diff --git a/tests/regressiontests/admin_ordering/models.py b/tests/regressiontests/admin_ordering/models.py
index 4938083ac5..601f06bb0a 100644
--- a/tests/regressiontests/admin_ordering/models.py
+++ b/tests/regressiontests/admin_ordering/models.py
@@ -24,14 +24,21 @@ class.
>>> 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']