任何人都可以告诉我如何将json数据类型定义到模型中的特定字段。
我试过这个
from django.db import models
import jsonfield
class Test(models.Model):
data = jsonfield.JSONField()
但是当我说python manage.py sqlall xyz
时
它将数据字段作为文本
BEGIN;
CREATE TABLE "xyz_test" (
"data" text NOT NULL
)
;
我仍然尝试将json数据插入到该字段中,但它给出的错误为:
ERROR: value too long for type character varying(15)
有人请帮忙。在此先感谢。
答案 0 :(得分:3)
在后台JSONField actually is a TextField中,sqlall的输出不是问题,这是预期的行为。
此外,我重新创建了你的模型并且它工作正常,无论是作为字符串输入值还是作为python字典,都没有任何字符限制。所以我最好猜测这个问题是一个完全不相关的领域 有15个字符限制。
答案 1 :(得分:1)
Django已为某些数据库添加了JSONField数据类型,以改进对JSON的处理。这篇文章提供了更多信息:Django 1.9 - JSONField in Models
答案 2 :(得分:0)
您可以尝试以下方法:
from django.contrib.postgres.fields import JSONField
class Test(models.Model):
data = models.JSONField()