【发布时间】:2019-07-29 06:16:14
【问题描述】:
我有个小问题:
我有这个模型:
class myModel(models.Model):
myField =JSONField()
我想更新这个字段:
data={'rda': {'punti': 0, 'rank': 1, 'pos': 'eq'}}
a =myModel()
a.myField=data
a.save()
但我有这个错误:
Traceback(最近一次调用最后一次):文件 “/home/hy0/.conda/envs/ciclods_env/lib/python3.7/site-packages/django/db/backends/utils.py”, 第 85 行,在 _execute 中 return self.cursor.execute(sql, params) psycopg2.DataError: 格式错误的数组字面量:"{"rda": {"punti": 0, "rank": 1, "pos": "eq"}}"
我该如何解决?
【问题讨论】:
-
试试 json.loads(data)
-
我试过了,但我得到了另一个错误 typeError: The JSON object must be str, bytes or bytearray, not dict
-
你运行的是什么版本的 Django 和 Postgres?
-
Django 2.1 和 postgres 10
-
您是否已将
myField更改为JSONField但之后未生成/应用任何迁移?这是以前的不同类型吗?我怀疑数据库字段的类型与模型中声明的类型不同。
标签: python django postgresql django-jsonfield