通用json模型和表单字段。
django-json-field的Python项目详细描述
^ tt1}$包含灵活的jSONFAR和相关联的表单字段。model字段不仅能够序列化常见的json数据类型(int、float、decimal、string、time、date、datetime等),而且还能够惰性地反序列化它们,以便它们可以作为django中的普通python对象进行访问和修改。
还提供了表单字段。它将接受序列化表示:
^{tt2}$
并提供对datetime模块的安全访问,供显式使用:
^{tt4}$
虽然json字符串在被访问之前不会被反序列化,但它仍然是一个性能问题,因此您可能会发现禁用自定义反序列化程序(JSONField(decoder=None))很有价值。
django-json-field也与south和python 3兼容。
安装
从pypi安装:
^{tt7}$
如果手动安装,请首先安装依赖项:
^{tt8}$
从github安装:
^{tt9}$
^{tt10}$
配置
将json_field添加到PYTHONPATH和INSTALLED_APPS设置:
INSTALLED_APPS = ( ... 'json_field', ... )
就这些!
用法
像任何其他字段一样,向模型中添加JSONField。
from json_field import JSONField from django.db import models class MyModel(models.Model): json = JSONField()
JSONField还有一些额外的可选参数。
- ^{tt16}$: Falls back on ^{tt17}$ if not provided and ^{tt18}$, otherwise ^{tt19}$
- ^{tt20}$: Allows you to specify the column type (default: ^{tt21}$)
- ^{tt22}$: Defer deserialization until the field is directly accessed (default: ^{tt23}$)
- ^{tt24}$: Custom JSON encoder (default: ^{tt25}$)
- ^{tt26}$: Custom JSON decoder (default: ^{tt27}$)
- ^{tt28}$: Specify all arguments to the encoder (overrides ^{tt24}$)
- ^{tt30}$: Specify all arguments to the decoder (overrides ^{tt26}$)
- ^{tt32}$: Evaluate (risky) and enable use of the ^{tt3}$ module in the form field (default: ^{tt34}$)
许可证
django-json-field根据新的bsd许可证获得许可。