In article <[email protected]>, Roy Smith <[email protected]> wrote: >In article <[email protected]>, > Roy Smith <[email protected]> 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 ([email protected]) <*> http://www.pythoncraft.com/ "....Normal is what cuts off your sixth finger and your tail..." --Siobhan -- http://mail.python.org/mailman/listinfo/python-list
