当前位置: 代码迷 >> python >> 错误缩进def __unicode __(self)后的UnicodeDecodeError:在models.py中
  详细解决方案

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

热度:19   发布时间:2023-06-16 10:08:41.0

我不小心在我的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语句的缩进方式就好像方法头已正确缩进一样。

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

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

我研究了类似的问题,但问题似乎不适用于我的情况。 什么是django.contrib.admin.options:changelist_view ,试图告诉我的错误究竟是什么。 我需要帮助解决这些家伙。

ps这与使用Django 1.5Python 2.7的旧项目有关

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

假设self.recepient已经是Unicode,请执行以下操作:

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

注意

  相关解决方案