diff options
| author | Joseph Kocherhans <joseph@jkocherhans.com> | 2007-09-14 22:20:54 +0000 |
|---|---|---|
| committer | Joseph Kocherhans <joseph@jkocherhans.com> | 2007-09-14 22:20:54 +0000 |
| commit | 5ec5814bf97844db349b0e418668cc4c3edfbea4 (patch) | |
| tree | 8404449ae932d3fe41499a85419bab3698373486 | |
| parent | 64b9123b7a3a154d7d5f730048ae1de7b430e0a5 (diff) | |
newforms-admin: Fixed ordering for ModelAdmin.queryset. Refs #4926, but that ticket still needs ModelAdmin.changelist_view to use ModelAdmin.queryset.
git-svn-id: http://code.djangoproject.com/svn/django/branches/newforms-admin@6232 bcc190cf-cafb-0310-a4f2-bffc1f526a37
| -rw-r--r-- | django/contrib/admin/options.py | 2 | ||||
| -rw-r--r-- | tests/regressiontests/admin_ordering/__init__.py | 0 | ||||
| -rw-r--r-- | tests/regressiontests/admin_ordering/models.py | 39 |
3 files changed, 40 insertions, 1 deletions
diff --git a/django/contrib/admin/options.py b/django/contrib/admin/options.py index 433be1ef46..ad10efda9d 100644 --- a/django/contrib/admin/options.py +++ b/django/contrib/admin/options.py @@ -292,7 +292,7 @@ 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() + return self.model._default_manager.get_query_set().order_by(*self.ordering) def queryset_add(self, request): """ diff --git a/tests/regressiontests/admin_ordering/__init__.py b/tests/regressiontests/admin_ordering/__init__.py new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/tests/regressiontests/admin_ordering/__init__.py diff --git a/tests/regressiontests/admin_ordering/models.py b/tests/regressiontests/admin_ordering/models.py new file mode 100644 index 0000000000..4938083ac5 --- /dev/null +++ b/tests/regressiontests/admin_ordering/models.py @@ -0,0 +1,39 @@ +# coding: utf-8 +from django.db import models + +class Band(models.Model): + name = models.CharField(max_length=100) + bio = models.TextField() + rank = models.IntegerField() + + class Meta: + ordering = ('name',) + +__test__ = {'API_TESTS': """ + +Let's make sure that ModelAdmin.queryset uses the ordering we define in +ModelAdmin rather that ordering defined in the model's inner Meta +class. + +>>> from django.contrib.admin.options import ModelAdmin + +>>> b1 = Band(name='Aerosmith', bio='', rank=3) +>>> b1.save() +>>> b2 = Band(name='Radiohead', bio='', rank=1) +>>> b2.save() +>>> b3 = Band(name='Van Halen', bio='', rank=2) +>>> b3.save() + +>>> 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'] + +""" +} |
