[英]django malformed array literal:
我有一個小問題:
我有這個模型:
class myModel(models.Model):
myField =JSONField()
我想更新這個字段:
data={'rda': {'punti': 0, 'rank': 1, 'pos': 'eq'}}
a =myModel()
a.myField=data
a.save()
但我有這個錯誤:
回溯(最近一次調用):文件“/home/hy0/.conda/envs/ciclods_env/lib/python3.7/site-packages/django/db/backends/utils.py”,第 85 行,在 _execute 中返回 self .cursor.execute(sql, params) psycopg2.DataError:格式錯誤的數組文字:“{”rda”:{“punti”:0,“rank”:1,“pos”:“eq”}}”
我該如何解決?
您必須需要使用 PostgreSQL。 我到目前為止嘗試過,它對我有用
data = {
'rda':{
'punti':0,
'rank':1,
'pos':'eq'
}
}
test = myModel()
test.myField=data
test.save()
您需要一個myModel
實例來存儲它。 例如:
myModel.objects.create(myField={'rda': {'punti': 0, 'rank': 1, 'pos': 'eq'}})
我懷疑那里有一些不明顯的額外代碼, data
是一個dict
但是然后你調用它的save
通常會引發一個AttributeError
。 此外,我在你的原碼猜myModel
不是一個實例myModel
而模型本身,所以你不能反對它直接操作,需要表示數據庫行的一個實例。
擁有myModel
的實例后,您可以執行以下操作:
a_model = myModel()
a_model.myField = {'rda': {'punti': 0, 'rank': 1, 'pos': 'eq'}}
a_model.save()
只是為了在我的回答中明確這一點,您需要確保數據庫字段與模型中聲明的字段匹配,檢查您是否已生成遷移並將它們應用於所有最新更改。
我有這個確切的問題,這篇文章是我能找到的唯一參考。 我不確定原因是什么,但我最終通過刪除我的新數據庫的遷移腳本來修復它。
如果遇到此錯誤,請嘗試刪除最后幾個遷移腳本,直到找到罪魁禍首。 或者,您可以像我一樣重新開始,它應該會再次工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.