In Trunk with the merged queryset-refactor branch, the following problem happens when trying to sort on a foreign key in the admin menu.
As an example i've used the contrib.comments and sorted on the 'user' column. (which is a foreign key to auth user model)
I've attached a patch (which seems) to fix this on this ticket.
Comments are appreciated :)
Error Message / Stack trace:
Environment:
Request Method: GET
Request URL: http://localhost:8000/admin/comments/comment/
Django Version: 0.97-pre-SVN-unknown
Python Version: 2.5.2
Installed Applications:
['django.contrib.sites',
'django.contrib.auth',
'django.contrib.admin',
'django.contrib.comments',
'django.contrib.contenttypes',
'django.contrib.humanize',
'django.contrib.redirects',
'django.contrib.sessions',
'django.contrib.sitemaps',
'django.contrib.markup',
'extensions',
'comment_utils',
'template_utils',
'django.contrib.flatpages',
'django.contrib.databrowse']
Installed Middleware:
('django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.cache.CacheMiddleware',
'django.middleware.doc.XViewMiddleware',
'django.contrib.flatpages.middleware.FlatpageFallbackMiddleware')
Traceback:
File "/usr/src/django/trunk/django/core/handlers/base.py" in get_response
82. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/src/django/trunk/django/contrib/admin/views/decorators.py" in _checklogin
62. return view_func(request, *args, **kwargs)
File "/usr/src/django/trunk/django/views/decorators/cache.py" in _wrapped_view_func
44. response = view_func(request, *args, **kwargs)
File "/usr/src/django/trunk/django/contrib/admin/views/main.py" in change_list
772. cl = ChangeList(request, model)
File "/usr/src/django/trunk/django/contrib/admin/views/main.py" in __init__
581. self.query_set = self.get_query_set()
File "/usr/src/django/trunk/django/django/contrib/admin/views/main.py" in get_query_set
736. qs = qs.order_by((self.order_type == 'desc' and '-' or '') + lookup_order_field)
File "/usr/src/django/trunk/django/db/models/query.py" in order_by
427. obj.query.add_ordering(*field_names)
File "/usr/src/django/trunk/django/db/models/sql/query.py" in add_ordering
1293. raise FieldError('Invalid order_by arguments: %s' % errors)
Exception Type: FieldError at /admin/comments/comment/
Exception Value: Invalid order_by arguments: ['auth_user.username']