Module ImportFrom alias ClassDef bases AttributeLoad NameLoad attr body Assign NameStore Call AttributeLoad NameLoad attr keyword Num Assign NameStore Call AttributeLoad NameLoad attr Assign NameStore Call AttributeLoad NameLoad attr ClassDef bases body Assign NameStore TupleLoad Str decorator_list decorator_list Assign NameStore Dict Str Str
N/A django.db models Band N/A N/A models Model N/A N/A name N/A N/A models CharField max_length 100 N/A bio N/A N/A models TextField N/A rank N/A N/A models IntegerField Meta N/A N/A N/A ordering N/A name N/A N/A N/A __test__ N/A 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()

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 ma.queryset(None)]
[u'Radiohead', u'Van Halen', u'Aerosmith']

