通用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添加到PYTHONPATHINSTALLED_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许可证获得许可。

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

推荐PyPI第三方库


热门话题
不能找出错误吗?(爪哇)   java Vaadin 7:有没有办法让Vaadin注意到标签是否溢出?   java从多行文本视图中获取特定行   java上载对象到内容长度为的Google Firebase云存储   Liferay 6.2中的java无法将对象从类传递到jsp   java使用JasperReports导出到Excel:如何为列添加自动筛选   java Explain警告:对varargs方法的非arargs调用,最后一个参数的参数类型不精确   为什么java在我的道路上,而不是javac?   java在意图中传递id时显示异常   java正在访问另一个类的属性   使用文件流的java   java在Spring组件之间共享信息   从未使用java专用字段“SerialVersionId”:intelliJ   java在执行maven命令期间获取FileNotFoundException   spring boot应用程序在cloud foundry java上崩溃。非法国家例外