如何从 Django 模型中为模型字段定义 json 类型

新手上路,请多包涵

谁能告诉我如何为模型中的特定字段定义 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)

有人请帮助。提前致谢。

原文由 G-Coder 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 426
2 个回答

在后台 JSONField 实际上是一个 TextField ,因此 sqlall 的输出不是问题,这是预期的行为。

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

原文由 yuvi 发布,翻译遵循 CC BY-SA 3.0 许可协议

你可以试试这个:

 from django.contrib.postgres.fields import JSONField

class Test(models.Model):
    data = models.JSONField()

原文由 poonam shinde 发布,翻译遵循 CC BY-SA 4.0 许可协议

推荐问题