In article <roy-30ba92.08410804112...@news.panix.com>, Roy Smith <r...@panix.com> wrote: >In article <roy-90d9a2.08321804112...@news.panix.com>, > Roy Smith <r...@panix.com> wrote: >> >> >>> print u.__unicode__() >> None >> >> >>> print unicode(u) >> Traceback (most recent call last): >> File "<stdin>", line 1, in <module> >> TypeError: coercing to Unicode: need string or buffer, NoneType found >> >> What's going on here? I thought >> (http://docs.python.org/2/library/functions.html#unicode) the latter two >> calls should be identical, but obviously they're not. > >Why is it, that no matter how long you stare at a problem, the answer >comes to you moments after you hit the Post button? :-) > >The problem is that __unicode__() is supposed to return a Unicode >object, and unicode() enforces that. The fix is to change: > > def __unicode__(self): > return self.username > >to be: > > def __unicode__(self): > return unicode(self.username) > >This never got noticed before because normally, self.username already is >a unicode string, so it just works.
You apparently need more coffee when programming after waking up! (Or even worse, staying up all night.) -- Aahz (a...@pythoncraft.com) <*> http://www.pythoncraft.com/ "....Normal is what cuts off your sixth finger and your tail..." --Siobhan -- http://mail.python.org/mailman/listinfo/python-list