在Django中存储字典的最佳方法是什么?是否存在将整个JSON推入字段的本地方式,或者我应该尝试使用其他东西......人们推荐什么。我想尽可能保持标准的Django。
答案 0 :(得分:0)
如果您正在使用PostgreSQL,可以查看django-hstore
class Something(models.Model):
name = models.CharField(max_length=32)
data = hstore.DictionaryField() # can pass attributes like null, blank, ecc.
instance = Something.objects.create(name='something', data={'a': '1', 'b': '2'})
assert instance.data['a'] == '1'
答案 1 :(得分:0)
目前MySQL没有特殊的JSON数据类型。在我的一个工作中,我们使用了普通的text / blob字段。在将其写入数据库之前,我们将其压缩:
>>> json.dumps([1,2,3,{'4': 5, '6': 7}], separators=(',',':'))
'[1,2,3,{"4":5,"6":7}]'
当我们需要展示它时(如果你需要展示它?),我们就打印出来了:
>>> print json.dumps({'4': 5, '6': 7}, sort_keys=True,
... indent=4, separators=(',', ': '))
{
"4": 5,
"6": 7
}
这些摘录来自official documentation。
答案 2 :(得分:0)
有几个软件包支持模型上的JSON字段:https://www.djangopackages.com/grids/g/json-fields/
还有一个特定的MySQL:https://django-mysql.readthedocs.org/en/latest/model_fields/json_field.html