错误地缩进def __unicode __(self)后的UnicodeDecodeError:在models.py中

时间:2015-10-24 15:40:09

标签: python django postgresql heroku django-admin

我在models.py中意外错放了两个def __unicode__(self):方法的标签缩进。即对于两个模型,我做了以下几点:

class Notification(models.model):
     recipient = models.OneToOneField(User)
     timestamp = models.DateTimeField()

def __unicode__(self):
          return "%s recieved a notification" % self.recipient

def语句与类处于同一级别,return语句缩进,就像方法标题正确缩进一样。

我纠正了它并推向生产(Postgres设置w / Heroku)。如果我在本地访问管理面板(在SQLite上),这些数据模型现在可以正确填充。但是,如果我尝试访问我的实时应用程序的管理面板,我得到500响应,通过NewRelic,我发现:

例外:UnicodeDecodeError错误 /django.contrib.admin.options:changelist_view 例外:UnicodeDecodeError:' ascii'编解码器不能解码位置68的字节0xc3:序数不在范围内(128)

我查看过类似问题,例如these,但它们似乎并不适用于我的案例。什么是django.contrib.admin.options:changelist_view,该错误试图告诉我究竟是什么。我需要帮助来解决这些问题。

P.S。这适用于使用 Django 1.5 Python 2.7 的遗留项目

1 个答案:

答案 0 :(得分:1)

您应该返回Unicode对象而不是字符串对象。

假设self.recepient已经是Unicode,请执行:

return u"%s recieved a notification" % self.recipient

请注意