一个可重用的Django字段,允许您在模型中存储经过验证的JSON。
项目描述
存档通知: 此包已被弃用并合并回 jsonfield。
jsonfield2 是一个可重用的模型字段,允许您存储经过验证的JSON,并自动处理数据库的序列化和反序列化。要使用它,请将 jsonfield.JSONField 添加到您的模型之一。
注意: django.contrib.postgres 现在支持PostgreSQL的jsonb类型,该类型包括扩展的查询功能。如果您是PostgreSQL的终端用户并希望使用完整的JSON支持,则建议您使用内置的JSONField。但是,当您的应用程序需要数据库无关性时,或者当内置JSONField的扩展查询功能没有被利用时(例如配置字段),jsonfield2仍然很有用。
要求
jsonfield2旨在支持所有当前Django版本,但是明确测试的版本是
Python 3.6, 3.7, 3.8
Django 2.2, 3.0
安装
pip install jsonfield2
用法
from django.db import models
from jsonfield import JSONField
class MyModel(models.Model):
json = JSONField()
高级用法
默认情况下,python将json反序列化为dict对象。这种行为与标准json行为不同,因为python字典没有有序键。为了克服这个限制并保持OrderedDict键的排序顺序,可以在模型初始化时调整反序列化
import collections
class MyModel(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 中更新包版本
检查 setup.py 和 readme 中的支持版本
为版本创建 git 标签
将发布版本上传到 PyPI 测试服务器
将发布版本上传到官方 PyPI 服务器
$ pip install -U pip setuptools wheel twine
$ rm -rf dist/ build/
$ python setup.py sdist bdist_wheel
$ twine upload -r test dist/*
$ twine upload dist/*
变更
查看 变更日志。
项目详情
jsonfield2-4.0.0.post0.tar.gz 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | cbce2d7c52563550cd2048fcf3a57631019d3547f5ed142f42141d1d2dc53283 |
|
MD5 | 80159b920936ab31eeeb893d3beb764e |
|
BLAKE2b-256 | ea7e9b093453c62a9599eef02274e12eb9d327519812288cad283494c4035ec1 |
jsonfield2-4.0.0.post0-py3-none-any.whl 的散列
算法 | 散列摘要 | |
---|---|---|
SHA256 | bab284d3fc721067d5f3107a0adc87ee772e9b09cac5eca042fad6311c4842bd |
|
MD5 | 9271b4f46f400ec852bdd397170d9e47 |
|
BLAKE2b-256 | 62ca4ad4bcd8d728721ac307adbaf9cb7371424773f8affcb425e3edd73e504c |