In [1]: from afns.apps.genericunique.models import Pony,Person In [2]: from django.contrib.auth.models import User In [3]: u1 = User.objects.all()[0] In [4]: u2 = User.objects.all()[1] In [5]: person1 = Person(user=u1) In [6]: person1.save() In [7]: person2 = Person(user=u2) In [8]: person2.save() In [9]: pony1 = Pony(purpleness=0,content_object=person1) In [10]: pony1.save() In [11]: pony2 = Pony(purpleness=-1,content_object=person2) In [12]: pony2.save() In [13]: Person.objects.all().order_by("pony__purpleness") Out[13]: --------------------------------------------------------------------------- Traceback (most recent call last) /home/svn/django/afns/ in () /usr/local/python25/lib/python2.5/site-packages/IPython/Prompts.py in __call__(self, arg) 521 522 # and now call a possibly user-defined print mechanism --> 523 manipulated_val = self.display(arg) 524 525 # user display hooks can change the variable to be stored in /usr/local/python25/lib/python2.5/site-packages/IPython/Prompts.py in _display(self, arg) 545 """ 546 --> 547 return self.shell.hooks.result_display(arg) 548 549 # Assign the default display method: /usr/local/python25/lib/python2.5/site-packages/IPython/hooks.py in __call__(self, *args, **kw) 132 #print "prio",prio,"cmd",cmd #dbg 133 try: --> 134 ret = cmd(*args, **kw) 135 return ret 136 except ipapi.TryNext, exc: /usr/local/python25/lib/python2.5/site-packages/IPython/hooks.py in result_display(self, arg) 160 161 if self.rc.pprint: --> 162 out = pformat(arg) 163 if '\n' in out: 164 # So that multi-line strings line up with the left column of /usr/local/python25/lib/python2.5/pprint.py in pformat(self, object) 109 def pformat(self, object): 110 sio = _StringIO() --> 111 self._format(object, sio, 0, 0, {}, 0) 112 return sio.getvalue() 113 /usr/local/python25/lib/python2.5/pprint.py in _format(self, object, stream, indent, allowance, context, level) 127 self._readable = False 128 return --> 129 rep = self._repr(object, context, level - 1) 130 typ = _type(object) 131 sepLines = _len(rep) > (self._width - 1 - indent - allowance) /usr/local/python25/lib/python2.5/pprint.py in _repr(self, object, context, level) 193 def _repr(self, object, context, level): 194 repr, readable, recursive = self.format(object, context.copy(), --> 195 self._depth, level) 196 if not readable: 197 self._readable = False /usr/local/python25/lib/python2.5/pprint.py in format(self, object, context, maxlevels, level) 205 and whether the object represents a recursive construct. 206 """ --> 207 return _safe_repr(object, context, maxlevels, level) 208 209 /usr/local/python25/lib/python2.5/pprint.py in _safe_repr(object, context, maxlevels, level) 290 return format % _commajoin(components), readable, recursive 291 --> 292 rep = repr(object) 293 return rep, (rep and not rep.startswith('<')), False 294 /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py in __repr__(self) /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py in __len__(self) /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/query.py in iterator(self) /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/sql/query.py in results_iter(self) /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/sql/query.py in execute_sql(self, result_type) /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/sql/query.py in as_sql(self, with_limits) /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/sql/query.py in get_ordering(self) /Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/django/db/models/sql/query.py in find_ordering_name(self, name, opts, alias, default_order, already_seen) : Cannot order by many-valued field: 'pony__purpleness'