一个可重用的django字段,允许您在模型中存储经过验证的json。
jsonfield2的Python项目详细描述
现代叉子django-jsonfield,与最新版本的django兼容。
jsonfield2是一个可重用的模型字段,允许您存储经过验证的json,并自动处理 与数据库之间的序列化。要使用,请将jsonfield.JSONField添加到一个模型中。
注意:django.contrib.postgres现在支持postgresql的jsonb类型,包括扩展查询 能力。如果您是postgresql的最终用户,并且想要全功能的json支持,那么 建议您使用内置的jsonfield。但是,当你的应用程序 需要与数据库无关,或者当内置jsonfield的扩展查询未被利用时。 例如,配置字段。
安装
pipinstalljsonfield2
用法
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
子类models.charfield而不是models.textfield。
运行测试
测试套件需要tox和tox-venv。
$ pip install tox tox-venv
要测试所有支持的django版本,请安装并运行tox:
$ tox
或者,只测试一个版本(例如python 3.6上的django 2.0):
$ tox -e py36-django20
释放过程
- 更新更改日志
- 在setup.py中更新包版本
- 为版本创建git标记
- 将版本上载到PYPI
$ pip install -U pip setuptools wheel $ rm -rf dist/ build/ $ python setup.py bdist_wheel upload
更改
看看changelog。