gpt4 book ai didi

python - 在 Django 中声明数据库字段时 verbose_name 参数中的非 ascii 字符串

转载 作者:行者123 更新时间:2023-11-28 22:08:01 25 4
gpt4 key购买 nike

我声明:

#This file is using encoding:utf-8
...
class Buddy(models.Model):
name=models.CharField('ФИО',max_length=200)
...

... 在 models.py 中。 manage.py syncdb 工作顺利。然而,当我进入管理界面并尝试添加一个新好友时,我发现了一个 DjangoUnicodeDecodeError,它说:“‘utf8’编解码器无法解码位置 0-1 中的字节:无效数据。你传入了‘\xd4\xc8\xce' (

我正在使用 sqlite3,因此所有字符串都存储为以 utf8 编码的字节串。 Django的编码也是utf8。看过 django 关于这个主题的文档,不知道。

UPD:最终我弄清楚了问题所在。原来是我用 ANSI 编码保存了我的源代码。

解决方案:我以 UTF-8 格式保存了源代码,效果非常好。

最佳答案

首先,我会将您的描述明确定义为 Unicode 字符串:

class Buddy(models.Model):
name=models.CharField(u'ФИО',max_len)

注意 u'ИО' 中的 'u'。

其次,您是否在模型中定义了 __unicode__() 函数?如果是这样,请确保它返回一个 Unicode 字符串。当管理界面试图访问模型的 unicode 表示时,而不是在将其添加到数据库时,您很可能会收到此错误。如果您从 __unicode__() 返回非 unicode 字符串,可能会导致此问题。

关于python - 在 Django 中声明数据库字段时 verbose_name 参数中的非 ascii 字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/475073/

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