Python django admin在尝试更新记录时崩溃,但在插入新记录时未崩溃

Python django admin在尝试更新记录时崩溃,但在插入新记录时未崩溃,python,mysql,django,django-admin,Python,Mysql,Django,Django Admin,我有一个奇怪的问题: developemnt的技术信息(将在linux/apache/Mysql上生产) macosx 2.6.6 python 2.6.1 django 1.3 mysql 5.1 和MySQLdb将python连接到MySQL 我是django的新手,每个人都可以从过去的问题中看到…但我需要在这方面变得非常强大,非常快…问题是这对我来说真的不是那么顺利 好的,回答这个问题。我正在做django教程(不是为了好玩,我需要快速学习,因为我需要用它开发一个巨大的系统) 我做了所有的

我有一个奇怪的问题:

developemnt的技术信息(将在linux/apache/Mysql上生产) macosx 2.6.6 python 2.6.1 django 1.3 mysql 5.1 和MySQLdb将python连接到MySQL

我是django的新手,每个人都可以从过去的问题中看到…但我需要在这方面变得非常强大,非常快…问题是这对我来说真的不是那么顺利

好的,回答这个问题。我正在做django教程(不是为了好玩,我需要快速学习,因为我需要用它开发一个巨大的系统)

我做了所有的教程,直到现在,在我添加管理员的阶段

当我试图编辑投票记录(如果有人知道django 1.3 tutrial)时,网站崩溃,出现以下异常:

警告位于/admin/polls/poll/2/ 第1行“更改消息”列的字符串值不正确:“\xD7\xA9\xD7\x95\xD7\xA0…”

将新记录添加到同一个表中没有问题,只需编辑一条即可

如果有人知道这件事

# Create your models here.
班级投票(models.Model): 问题=models.CharField(最大长度=200) 发布日期=models.datetime字段(“发布日期”)

这是模型,我看到的另一个,我的MySQL数据库是latin1而不是UTF-8…python是unicode…也许这就是问题所在


但是,我仍然不明白为什么我可以添加记录但不能编辑它们……这不是奇怪的部分吗?

听起来像是数据库字符集的问题。能否检查数据库中auth_消息表的默认字符集


如果您的表无法处理utf8,它将抛出此错误。

听起来像是数据库字符集问题。能否检查数据库中auth_消息表的默认字符集


如果您的表无法处理utf8,它将抛出此错误。

打开mysql shell并运行以下操作:

mysql> show variables like  'character\_set\_%';
上面是否有
utf8

假设这是mysql问题,请将您的db设置替换为sqlite3:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'database.sqlite3',           
        'USER': '',                      
        'PASSWORD': '',                  
        'HOST': '',                     
        'PORT': '',                   
    }
}

同步并再次尝试输入一些数据。

打开mysql shell并运行以下操作:

mysql> show variables like  'character\_set\_%';
上面是否有
utf8

假设这是mysql问题,请将您的db设置替换为sqlite3:

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': 'database.sqlite3',           
        'USER': '',                      
        'PASSWORD': '',                  
        'HOST': '',                     
        'PORT': '',                   
    }
}

同步并再次尝试输入一些数据。

在“django\u admin\u log”表中找到“change\u message”列。将字符集更改为utf-8默认值。完成

在“django\u管理日志”表中查找“更改消息”列。将字符集更改为utf-8默认值。完成

我遇到了相同的问题,但使用的是Django 1.4。我使用了光离子化的建议,但适用于此版本(其中,
auth\u message
已消失,但您可以在
django\u admin\u log
中找到
change\u message
)。因此:


我在使用Django 1.4时遇到了相同的问题。我使用了光离子化的建议,但适用于此版本(其中,
auth\u message
已消失,但您可以在
django\u admin\u log
中找到
change\u message
)。因此:


您为投票输入了什么样的数据?任何非英语字符?你能展示你的模型吗?10x,我添加了一些东西…谢谢你的帮助,现在,我输入的所有数据都是英语的…我想这是python mysql编码在做的…不知道该怎么做…你为投票输入了什么样的数据?任何非英语字符?你能展示你的模型吗?10x,我已经添加了一些东西…谢谢你的帮助,现在,我输入的所有数据都是英语的…我想这是python mysql编码在做的…不知道该怎么做…在看到你编辑的底部后,这确实是个问题。我不确定为什么您也可以添加条目(可能python->mysql连接器正在幕后进行一些字符转换?),但我很确定这是您的问题。尝试运行类似于
altertable auth\u message CONVERT TO CHARACTER SET utf8 COLLATE utf8\u general\u ci0.10x,我尝试了所有的方法…表格被设置为拉丁语,我将其更改为utf-8…但仍然得到相同的信息。。。p、 我需要在表中检查什么,除了…表是空的…只是表的聊天集是iv'e changedDo a
显示创建表验证消息并且它应该显示表本身的设置。此外,您可能希望尝试设置数据库本身的默认排序规则/字符集。10x,得到解决方案…数据库的所有字符集都不正确。。。。我是一个初学者开发人员,在mac上工作…我正在使用手册来安装MAMP并使用它…但是成功了。。。比特时间。在我看来。。。它造成了很多问题。。。。现在我有很多东西的副本……但最终还是设法从MySQL网站返回MySQL,使用python服务器而不是Apache(仅用于开发),因为似乎所有的产品都不是针对mac的……(Apache,Pythonmysqldb)现在我只希望当我安装产品(Ubuntu10.4或10.10..还不知道)时,它会工作得更好…从微软到开源是很难的…确实很难…在看到你的编辑的底部后,这确实是个问题。我不确定为什么您也可以添加条目(可能python->mysql连接器正在幕后进行一些字符转换?),但我很确定这是您的问题。尝试运行类似于
altertable auth\u message CONVERT TO CHARACTER SET utf8 COLLATE utf8\u general\u ci0.10x,我尝试了所有的方法…表格被设置为拉丁语,我将其更改为utf-8…但仍然得到相同的信息。。。p、 我需要在表中检查什么,除了…表是空的…只是表的聊天集是iv'e changedDo a
显示创建表验证消息并应显示设置