gpt4 book ai didi

python - Django 错误 : conversion from bytes to Decimal is not supported

转载 作者:可可西里 更新时间:2023-11-01 08:17:54 27 4
gpt4 key购买 nike

所以我有以下模型

class Stock(models.Model):
name = models.CharField(max_length=50)
unit_measure = models.CharField(max_length=10)
unit_price = models.DecimalField(max_digits=10, decimal_places=2)

当我尝试在 Django 的管理站点中添加该模型的实例时,出现以下错误

(<class 'TypeError'>, TypeError('conversion from bytes to Decimal is not supported',))

Exception Location: /Library/Frameworks/Python.framework/Versions/3.3/lib/python3.3/site-packages/PyMySQL-0.5-py3.3.egg/pymysql/connections.py in defaulterrorhandler, line 209

但是当我使用 phpmyadmin 查找我的数据库时,数据已成功插入到表中。

我用的是Django1.5+Python3.3+MySQL5.5+PyMySQL

有人知道这里出了什么问题吗?

最佳答案

11 个月后,我希望原始发布者找到了解决方法(比切换到 python 2 更好)。

OP 没有列出他的数据库连接字符串,但也许他正在为他的连接使用“use_unicode=0”设置?

我是,而且我最近遇到了相同的类型转换错误。似乎应该可以将字节字符串转换为十进制,也许这在某人的待办事项列表中:),但在那之前我可以分享对我来说解决问题的方法:

连接到 mysql 时(通过 pymysql 和 python 3.4.1)设置 charset=utf8 属性(假设您需要该属性,您可能应该这样做)但不要设置 use_unicode=0 属性。我根据当前 (0.9) sqlalchemy 文档的建议设置该属性,该文档说它会“快得多”。更快但损坏不是改进:(。也许该建议仅适用于 python2.x 用户?考虑到 pymysql 如何尝试成为 python 3.x 的热交换 MySqlDB,这有点令人困惑,但 python 的 unicode 和字符串处理有在 2.x 和 3.x 之间发生了变化,所以...

在不深入研究 pymysql 的情况下,我假设使用 python3“use_unicode”意味着 char 字段作为 python native (unicode) 字符串而不是“字节字符串”返回,内容编码为 utf8。设置“use_unicode=0”,你会得到字节串,从而得到 TypeError。

无论如何,这对我有用;希望这对看到此错误的其他人有所帮助。

关于python - Django 错误 : conversion from bytes to Decimal is not supported,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19153172/

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