一个可重用的django字段,允许您在模型中存储经过验证的json。

jsonfield2的Python项目详细描述


https://travis-ci.org/rpkilby/jsonfield2.svg?branch=masterhttps://codecov.io/gh/rpkilby/jsonfield2/branch/master/graph/badge.svghttps://img.shields.io/pypi/v/jsonfield2.svghttps://img.shields.io/pypi/l/jsonfield2.svg

现代叉子django-jsonfield,与最新版本的django兼容。


jsonfield2是一个可重用的模型字段,允许您存储经过验证的json,并自动处理 与数据库之间的序列化。要使用,请将jsonfield.JSONField添加到一个模型中。

注意:django.contrib.postgres现在支持postgresql的jsonb类型,包括扩展查询 能力。如果您是postgresql的最终用户,并且想要全功能的json支持,那么 建议您使用内置的jsonfield。但是,当你的应用程序 需要与数据库无关,或者当内置jsonfield的扩展查询未被利用时。 例如,配置字段。

要求

jsonfield2旨在支持所有当前的versions of Django,但是经过明确测试的版本是:

  • python:3.4、3.5、3.6、3.7
  • django:1.11、2.0、2.1

安装

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

运行测试

测试套件需要toxtox-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

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java我想让球知道它们在JPanel中的一个矩形内   java从TabLayout添加和删除选项卡   java Mockito拒绝抛出选中的异常   java用户输入总分、平均分、最低分和最高分(条件控制结构)   java javax ConstraintViolation:如何识别集合中违反的元素?   java如何使用ApachePOI在不同的行中创建多个自动过滤器   java在使用ifstatement和String时遇到问题。代替   java AWS describeLogGroups()不返回日志组   java使用浏览器小程序从IP地址/端口检索数据   java更新ArrayList中匹配字母的所有实例   java如果我通过依赖于输入的谓词来限制流的大小,我可以计算流的大小吗?   java从编辑文本中获取int并将其转换为字符串   java重用字符串和颜色的术语是什么?   scala使用Java Lambda创建两个(或更多)列表的笛卡尔乘积集合   java向设备发送云消息Azure IoT