alwaysdata.com服务器上的Django UnicodeDecodeError

时间:2014-06-04 18:29:32

标签: python django unicode

我把我的django项目放在网站alwaysdata.com上,在HTML网站上一切看起来都不错,但是当我进入ADMIN面板并尝试打开其中一个结构时我得到了

 `'ascii' codec can't decode byte 0xc5 in position 38: ordinal not in range(128)`

在我的项目中,我有来自波兰语字母的字母,如'ł',' - '等。我想出可能我必须将编码从默认的ascii更改为utf-8。我将其更改为modles.py,如:

# -*- coding: utf-8 -*-

admin.py以同样的方式开始文件。

我仍然有同样的错误。所以有我的问题,我应该在哪里改变它以及如何改变它?也许......其他原因导致问题?也许有其他解决方案?感谢。

1 个答案:

答案 0 :(得分:0)

models.py

class Mecz(models.Model): 
    kolejka = models.IntegerField('Kolejka') 
    data = models.DateField() 
    miejsce = models.TextField(max_length=100) 
    gospodarz = models.ForeignKey(Zespol,related_name="as_host") 
    gosc = models.ForeignKey(Zespol,related_name="as_guest") 
    bramki_gospodarz = models.IntegerField('Bramki Gospodarzy') 
    bramki_gosc = models.IntegerField('Bramki Gosci',) 
    description = models.TextField('Uwagi') 

def save(self, *args, **kw):

    miejsce = miejsce.encode('utf-8')

    super(Mecz, self).save(*args, **kw)

我猜您是从管理员而不是自己保存数据,因此您可以在保存之前覆盖保存模型方法以执行任何操作。

这里是文档https://docs.djangoproject.com/en/dev/topics/db/models/#overriding-predefined-model-methods

我不确定这是不是你的问题,但我无法在评论中解释

希望帮助