dar*_*rse 0 python django django-jsonfield
在我的models.py 中,我有以下代码:
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,
}
Run Code Online (Sandbox Code Playgroud)
从代码中可以看出,当一个列被保存时,如果列的必填字段被添加到表的结构中。但是,当我尝试从管理面板保存一列时,出现以下错误:
TypeError at /admin/myapp/column/add/
'unicode' object does not support item assignment
Run Code Online (Sandbox Code Playgroud)
我认为问题在于我的结构字段的默认值。我还尝试了以下方法:
structure = JSONField(default={})
structure = JSONField(default='{}')
structure = JSONField(default=dict)
Run Code Online (Sandbox Code Playgroud)
每次,我都遇到同样的错误。有什么帮助吗?谢谢。
| 归档时间: |
|
| 查看次数: |
2223 次 |
| 最近记录: |