gpt4 book ai didi

添加时Django admin UnicodeDecodeError

转载 作者:行者123 更新时间:2023-12-04 17:21:00 27 4
gpt4 key购买 nike

在 django 界面中添加元素时遇到问题。我有两个定义:

# -*- coding: utf-8 -*-
class VisitType(models.Model):
name=models.CharField(max_length=50,db_index=True,verbose_name="Nombre del tipo de visita")
is_basal=models.BooleanField(default=False,verbose_name="Es basal")

def __unicode__(self):
if self.is_basal:
s="%s [BASAL]" % (self.name)
else:
s="%s" % (self.name)
return s

class Visit(models.Model):
type=models.ForeignKey(VisitType,null=True,on_delete=models.SET(VisitType.get_sentinel_visit_type),db_index=False,verbose_name="Tipo de visita")

def __unicode__(self):
return "Tipo de visita %s" % (self.type)

在管理站点中添加 VisitType 对象时,没有问题。
adding_VisitType

但是,在管理员中添加访问时:
adding_Visit

我用这个提示得到了 UnicodeDecodeError:
“无法编码/解码的字符串是 Analtica”(注意我在表单中使用了“Analítica”访问类型。

我正在使用 django 1.5.1,MySQL-python 1.2.4。

MySQL 使用带有 utf8_general_ci 排序规则的表。

数据库是 MySQL 5.5.30。

问候。

最佳答案

您的 __unicode__ 都没有方法返回 unicode 字符串。它们都返回字节字符串。这是灾难的秘诀。尤其是在这些函数中,您将 unicode 插入到字节字符串中。

改为这样做:

def __unicode__(self):
if self.is_basal:
s = u"%s [BASAL]" % (self.name)
else:
s = self.name
return s

和:
return u"Tipo de visita %s" % (self.type)

关于添加时Django admin UnicodeDecodeError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17745806/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com