一个可重用的django字段,允许您在模型中存储经过验证的json。
json-trim的Python项目详细描述
django jsonfield
django json field是一个可重用的django字段,它允许您在模型中存储经过验证的json。
它默默地处理序列化。要使用,只需将字段添加到一个模型中。
new:支持python 3&django 1.7!
postgresql吗?:暂时使用https://github.com/bradjasper/django-jsonfield/tree/postgresql
安装
pipinstalljsonfield
用法
fromdjango.dbimportmodelsfromjsonfieldimportJSONFieldclassMyModel(models.Model):json=JSONField()
高级用法
默认情况下,python将json反序列化为dict对象。此行为与标准json行为不同,因为python dict没有顺序键。
为了克服此限制并保持ordereddict密钥的排序顺序,可以在模型初始化时调整反序列化:
importcollectionsclassMyModel(models.Model):json=JSONField(load_kwargs={'object_pairs_hook':collections.OrderedDict})
其他字段
jsonfield.jsoncharfield
如果需要在索引或其他约束中使用json字段,可以使用json charfield哪个子类charfield,而不是textfield。如果使用此字段,还需要指定max_length参数。
兼容性
django jsonfield支持python 2.7-python 3.3和django 1.4+
为什么它不支持Python2.6?
如果不使用ordereddict,您实际上可能还可以,但是simplejson api存在一些问题,使得它难以支持。
为什么它不支持django 1.3?
Django1.4中的一个功能只能修复一个bug。Read More如果你对细节感兴趣的话。
特拉维斯ci
更改
v0.9.23,9/3/2014–允许在旧版本的django中运行测试
v0.9.22,7/10/2014–添加了django 1.7支持
v0.9.212014年5月26日–增加了对python 3和regex查找测试的更好支持
V0.9.20,11/14/2013–表单字段上的固定加载夸尔格斯,将django 1.6添加到自动测试中
v0.9.192013年9月18日–修复了django.6的更改,其中使用了破坏django jsonfield的元类
2013年8月23日,v0.9.18–修复了South数据迁移的错误
2013年7月6日,v0.9.17–修复了jsoncharfield管理表单中的错误
v0.9.14/15/16,04/29/2013–添加了python 3支持!
V0.9.11/12/13,03/26/2013–PYPI变化
V0.9.9/10/11,03/21/2013–PYPI变化
2013年3月21日,v0.9.8–增加了对原生postgresql json数据类型的支持
2013年3月21日,v0.9.7–修复jsonfield在 字符串