Opened 18 years ago
Closed 18 years ago
#6649 closed (invalid)
Can't order by a ForeignKey relation
| Reported by: | toomim | Owned by: | nobody |
|---|---|---|---|
| Component: | Core (Other) | Version: | dev |
| Severity: | Keywords: | ||
| Cc: | Triage Stage: | Unreviewed | |
| Has patch: | no | Needs documentation: | no |
| Needs tests: | no | Patch needs improvement: | no |
| Easy pickings: | no | UI/UX: | no |
Description
I have a model Venue that is sorted by "-pub_date":
class Venue(models.Model):
....
pub_date = models.DateField('Published date', help_text="Only the year and month will be used")
class Admin: pass
class Meta:
ordering = ("-pub_date",)
And a model PubAward that foreignkeys Venue, and sorts by Venue:
class PubAward(models.Model):
...
venue = models.ForeignKey(Venue, blank=True)
class Admin: pass
class Meta:
ordering = ("venue",)
But when I open an admin page on PubAward, it tries to list all PubAwards and gives me the following error:
no such column: main_venue.-pub_date
Here's the full stack trace:
Environment:
Request Method: GET
Request URL: http://together.cs.washington.edu:8082/admin/main/pubaward/
Django Version: 0.97-pre-SVN-7149
Python Version: 2.4.4
Installed Applications:
['django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'dubweb.main',
'django.contrib.admin']
Installed Middleware:
('django.middleware.common.CommonMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.middleware.doc.XViewMiddleware')
Traceback:
File "/usr/lib/python2.4/site-packages/django/core/handlers/base.py" in get_response
82. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.4/site-packages/django/contrib/admin/views/decorators.py" in _checklogin
56. return view_func(request, *args, **kwargs)
File "/usr/lib/python2.4/site-packages/django/views/decorators/cache.py" in _wrapped_view_func
39. response = view_func(request, *args, **kwargs)
File "/usr/lib/python2.4/site-packages/django/contrib/admin/views/main.py" in change_list
776. cl = ChangeList(request, model)
File "/usr/lib/python2.4/site-packages/django/contrib/admin/views/main.py" in __init__
582. self.get_results(request)
File "/usr/lib/python2.4/site-packages/django/contrib/admin/views/main.py" in get_results
640. result_list = list(self.query_set)
File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in __iter__
114. return iter(self._get_data())
File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in _get_data
483. self._result_cache = list(self.iterator())
File "/usr/lib/python2.4/site-packages/django/db/models/query.py" in iterator
189. cursor.execute("SELECT " + (self._distinct and "DISTINCT " or "") + ",".join(select) + sql, params)
File "/usr/lib/python2.4/site-packages/django/db/backends/util.py" in execute
18. return self.cursor.execute(sql, params)
File "/usr/lib/python2.4/site-packages/django/db/backends/sqlite3/base.py" in execute
133. return Database.Cursor.execute(self, query, params)
Exception Type: OperationalError at /admin/main/pubaward/
Exception Value: no such column: main_venue.-pub_date
This also occurs without the hyphen in "-pub_date".
Note:
See TracTickets
for help on using tickets.
Ordering by related fields doesn't work like that in trunk. Please read the documentation for order_by carefully. Also search the django-users archives, since this issue comes up frequently (including mention that it's being worked on to make it more natural).