__unicode__() works, unicode() blows up.
Roy Smith
roy at panix.com
Sun Nov 4 08:32:18 EST 2012
Environment:
Python-2.7.3
Ubuntu Precise
mongoengine 0.6.20
I have a class which includes a __unicode__() method:
class User(mongoengine.Document):
def __unicode__(self):
return self.username
If I create an instance of this class by calling the constructor
directly, self.username is None. When I pass that to unicode(), it
blows up. However, calling __unicode__() directly, works as expected:
>>> u = User()
>>> print u.username
None
>>> 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.
More information about the Python-list
mailing list