错误缩进 def __unicode__(self) 后出现 UnicodeDecodeError: in models.py

UnicodeDecodeError after wrongly indenting def __unicode__(self): in models.py

我在 models.py 中不小心放错了两个 def __unicode__(self): 方法的制表符缩进。 IE。对于两个模型,我做了以下操作:

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

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

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

我更正了它并投入生产(带有 Heroku 的 Postgres 设置)。如果我在本地(在 SQLite 上)访问管理面板,这些数据模型现在会正确填充。但是如果我尝试访问我的实时应用程序的管理面板,我会收到 500 响应,并且通过 NewRelic,我发现:

exceptions:UnicodeDecodeError /django.contrib.admin.options:changelist_view exceptions:UnicodeDecodeError:'ascii' 编解码器无法解码位置 68 中的字节 0xc3:序号不在范围内(128)

我查看了类似的问题,例如 these,但它们似乎不适用于我的情况。 django.contrib.admin.options:changelist_view 是什么,那个错误到底是什么意思。我需要帮助解决这些问题。

p.s。这与使用 Django 1.5Python 2.7

的遗留项目有关

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

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

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

注意 u