【发布时间】:2017-04-29 06:58:54
【问题描述】:
我在使用带有 JSONField 的 ArrayField 插入字段时遇到问题。
models.py
locations = ArrayField(JSONField(null = True,blank = True), blank=True, null = True)
插入
location_arr = [{"locations" : "loc1","amount":Decimal(100.00)},{"locations" : "loc2","amount":Decimal(200.25)}]
instance.locations = location_arr
instance.save()
当我这样做时,我得到了
列“位置”的类型为 jsonb[],但表达式的类型为 text[]
第 1 行:...d" = 2517, "locations" = ARRAY['{"loc...
提示:您需要重写或转换表达式。
所以我尝试使用以下方式转储它:
import json
location_arr = [{"locations" : "loc1","amount":Decimal(100.00)},{"locations" : "loc2","amount":Decimal(200.25)}]
instance.locations = json.dumps(location_arr)
instance.save()
然后我得到了这个
第 1 行:...d" = 2517, "locations" = '[{"loc":...
DETAIL:“[”必须引入明确指定的数组维度。
我正在使用:
- Django 1.9
- Python 2.7
- Postgres 9.4.10
- psycopg2 2.6.2
【问题讨论】:
-
这是known bug。
-
这已在
Django==2.2a1中修复
标签: python arrays json django postgresql