我在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 的遗留项目
答案 0 :(得分:1)
您应该返回Unicode对象而不是字符串对象。
假设self.recepient
已经是Unicode,请执行:
return u"%s recieved a notification" % self.recipient
请注意你