在我models.py,我有以下代碼:追加到一個Django JsonField的項目 - 獲取一個TypeError
from __future__ import unicode_literals
from django.db import models
from django.contrib.postgres.fields import JSONField
import json
class Table(models.Model):
name = models.CharField(max_length=255)
structure = JSONField(default=json.dumps('{}'))
def __unicode__(self):
return self.name
class Column(models.Model):
table = models.ForeignKey(Table, related_name='columns')
name = models.CharField(max_length=255)
required = models.BooleanField(default=True)
def __unicode__(self):
return self.name + ' FROM TABLE ' + self.table.name
def save(self, *args, **kwargs):
if not self.pk:
self.table.structure[self.name] = {
'required' : self.required,
}
正如你可以從代碼,當一列被保存,如果看見該列的必填字段將被添加到表格的結構中。然而,當我嘗試保存從管理面板中的專欄中,我得到以下錯誤:
TypeError at /admin/myapp/column/add/
'unicode' object does not support item assignment
我認爲這個問題是我的結構字段的默認值。我也試過以下內容:
structure = JSONField(default={})
structure = JSONField(default='{}')
structure = JSONField(default=dict)
每一次,我都有同樣的錯誤。任何幫助?謝謝。
我實際上已經閱讀過文檔,但之前已經有一個將其設置爲{}的遷移。我沒有真正的數據庫清理部分。不過謝謝。 –