在Python中正确使用__repr__和unicode?

时间:2015-12-06 21:02:28

标签: python unicode

我有一个对象,其中包含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>

可能是什么问题?

0 个答案:

没有答案