Djano JSON领域.'module'对象没有属性'JSONField'

Gar*_*ary 3 python django

我正在学习Django,并且在模型中创建一个json字段感到很沮丧.我试图在我的模型中创建一个json字段,但得到错误:'module'对象没有属性'JSONField'.这是我在models.py中的类:

class Question(models.Model):
    question_text = models.JSONField(max_length=200)
    pub_date = models.DateTimeField('date published')
Run Code Online (Sandbox Code Playgroud)

我使用的是django 1.9.8和postgresql 9.2.13.我需要在postgresql db中创建的表有一个JSON类型的列.我怎么能在模型类中做到这一点?谢谢!

Ces*_*ssa 11

Django 3.1 更新

从 Django 3.1 开始,JSONField现在可用于所有数据库后端。

https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.JSONField


Sha*_*ang 10

有没有JSONFieldmodels模块,您需要:

from django.contrib.postgres.fields import JSONField

class Question(models.Model):
    question_text = JSONField()
Run Code Online (Sandbox Code Playgroud)

关于JSONField的 Django doc .


Ank*_*pta 5

JSONField模特中没有.但是有一个方便的jsonfield包可用于JSONFieldDjango模型.要安装包,请执行以下操作:

pip install jsonfield
Run Code Online (Sandbox Code Playgroud)

安装完成后,执行:

from jsonfield import JSONField
from django.db import models

class Question(models.Model):
question_text = JSONField(max_length=200)
pub_date = models.DateTimeField('date published')
Run Code Online (Sandbox Code Playgroud)

  • 这将起作用。但是您会丢失与Postgres锁定的Django的JSONField一起提供的很棒的东西,例如对JSON数据的索引和查询。 (2认同)
  • 是的,核心功能总是比第三方库更好的选择。:) (2认同)