我有一个对象,其中包含unicode中的标题字段。它有一个__unicode__
函数输出该标题:
def __unicode__(self):
return self.title // e.g. u'\xe2'
每当我尝试打印这样的对象列表时,例如只需在Jinja中引用它,我得到:
UnicodeDecodeError: 'ascii' codec can't decode byte 0xc3 in position 1: ordinal not in range(128)
或类似的。如果我打印单个对象,则不会发生此问题。
我猜这与__repr__
没有被定义有关。我这样定义了它:
def __repr__(self):
s = u'%s' % self
return s.encode('utf8')
貌似,编码工作并且函数返回一个str,但是当Jinja尝试打印这些对象的列表时它仍然失败,例如:
<small>{{ get_list_of_objects() }}</small>
可能是什么问题?