Django在模型字段更新后将值转换为元组

bybem2ql  于 2023-06-07  发布在  Go
关注(0)|答案(1)|浏览(137)

我使用Django 2.0。我有一个模型,其字段声明为:

px = models.DecimalField(max_digits=10, decimal_places=2, default=0)

从数据库中获取此对象的示例后,我尝试使用以下内容更新其属性:

obj.px = "-2.6"

值“-2.6”来自一个变量,但我已经用硬代码进行了测试:-2.6、2.6、十进制。十进制(“-2.6”)等。它总是将该值转换为元组,我不知道为什么。我在django中得到的结果是:
参数必须是长度为3的序列
Django在从模型中调用“保存”方法时会引发这个错误,它在内部进行转换:

return decimal.Decimal(value)

当我打印新的“px”值时,我得到了这个:
(2.6,)
我做的唯一修复是:

if isinstance(obj.px, tuple):
    obj.px = obj.px[0]
guicsvcw

guicsvcw1#

对不起,我有一个语法错误。我有这样的代码:

obj.px = variable1,
obj.py = variable2,

所以问题是最后的逗号,我猜python把命令作为元组。我把通讯器关掉了一切正常。(我想杀了自己jeje)

相关问题