我使用包含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()
当我这样做时,我得到了:
列“locations”的类型为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()
然后我得到了这个
LINE 1: ...d" = 2517, "locations" = '[{"loc":...
DETAIL: "[" 必须明确指定数组维度。
我正在使用:
- Django 1.9
- Python 2.7
- Postgres 9.4.10
- psycopg2 2.6.2
Django==2.2a1
中得到了修复。 - Artem Bernatskyi