﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
25790	Add a way to disable column sorting in the admin	Ramiro Morales	Ramiro Morales	"Consider this model:

{{{
# models.py
from __future__ import unicode_literals

from django.db import models


class CreditCard(models.Model):
    issued_to = models.CharField(max_length=40)
    good_thru = models.DateField()
    last_four_digits = models.CharField(max_length=4)
}}}

And this admin.py for the app:
{{{
from django.contrib import admin

from app.models import CreditCard


class CCAdmin(admin.ModelAdmin):
    list_display = [
        'issued_to',
        'good_thru',
        'last_four_digits',
    ]
    ordering = ['good_thru']


admin.site.register(CreditCard, CCAdmin)
}}}

The user has specified explicitly he/she wants the change list view grid to be sortable by default by the credt card expiration date by using the `ModelAdmin.ordering`option.

Now, the interactive sorting changelist functionality that allows one to sort by a column by clicking on its header automagically allows one to also sort by other columns chosen by a documented logic (i.e. not if callable columns, etc.).

In the example, it allows users to also sort by the name of the credit card owner which, even if not asked for, seems useful.

Where it doesn't make so much sense is, for the example, in the case of the 'last four digits' column.

IMHO there should be a way to express which columns one wants this functionality for without having to resort to things like:

{{{
class CCAdmin(admin.ModelAdmin):
    list_display = [
        'issued_to',
        'good_thru',
        'last4digits',
    ]
    #...

    def last4digits(self, obj):
        """"""So we don't get bogus ordering by this field in the change list view.""""""
        return obj.last_four_digits
    last4digits.short_description = '4 last digits'
}}}
"	New feature	closed	contrib.admin	dev	Normal	fixed	sorting ordering change list changelist admin	Simon Charette Matthijs Kooijman	Ready for checkin	1	0	0	0	0	0
