我正在学习Django,并且在模型中创建一个json字段感到很沮丧。我试图在我的模型中创建一个json字段,但是出现了错误:' module'对象没有属性' JSONField'。这是我在models.py中的类:
class Question(models.Model):
question_text = models.JSONField(max_length=200)
pub_date = models.DateTimeField('date published')
我正在使用django 1.9.8和postgresql 9.2.13。 我需要在postgresql db中创建的表有一个JSON类型的列。我怎么能在模型类中做到这一点? 谢谢!
答案 0 :(得分:9)
JSONField
模块中没有models
,您需要:
from django.contrib.postgres.fields import JSONField
class Question(models.Model):
question_text = JSONField()
关于JSONField的Django doc。
答案 1 :(得分:6)
从Django 3.1开始,JSONField
现在可用于所有数据库后端。
https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.JSONField
答案 2 :(得分:5)
模型中没有JSONField
。但是有一个方便的jsonfield
包可以在Django模型中使用JSONField
。要安装软件包,请执行以下操作:
pip install jsonfield
安装完成后,执行:
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')
答案 3 :(得分:0)
更改import语句应该可以解决您的问题(这对我有所帮助):
from django.contrib.postgres.fields.jsonb import JSONField
因此JSONField现在位于jsonb模块中。