Python 如何从django模型为模型字段定义json类型

Python 如何从django模型为模型字段定义json类型,python,json,django,postgresql,Python,Json,Django,Postgresql,有谁能告诉我如何为模型中的特定字段定义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数据类型吗

我试过这个

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)
有人请帮忙。提前感谢。

在后台,因此sqlall的输出不是问题,这是预期的行为


此外,我重新创建了您的模型,它工作得很好,无论是作为字符串输入值还是作为python字典输入值,都没有任何字符限制。因此,我最好的猜测是,这个问题是一个完全不相关的字段,它有15个字符的限制。

为某些数据库向Django添加了一个JSONField数据类型,以改进JSON的处理。更多信息可在此帖子中找到:

您可以尝试以下方法:

从django.contrib.postgres.fields导入JSONField
类别测试(models.Model):
data=models.JSONField()

在后台,所以这不是问题,这是预期的行为。然而,15个字符的限制有点奇怪-你能分享你试图保存的值吗?@yuvi这是值-{'name':'xyz','email':'xyz@gmail.com“,'phone':'0123456789'}我刚刚重新创建了您的模型,并能够将准确的值保存到jsonfield。你确定是jsonfield导致了这个错误,而不是某个不同的字段有15个字符的限制吗?是的,对于这个文本字段,无论如何,你可以发布你遵循的过程或语法。同位语。!!错误来自其他字段。明白了,伙计。