Djano JSON field. object ‘module’ não tem atributo ‘JSONField’

Eu estou aprendendo Django e fiquei frustrado com a criação de um campo json em um modelo. Eu estava tentando criar um campo json no meu modelo, mas tenho erro: ‘módulo’ object não tem atributo ‘JSONField’. Aqui está minha aula em models.py:

class Question(models.Model): question_text = models.JSONField(max_length=200) pub_date = models.DateTimeField('date published') 

Eu estou usando o django 1.9.8 e o postgresql 9.2.13. Eu preciso da tabela criada no postgresql db tem uma coluna com o tipo JSON. Como posso fazer isso na class de modelo? Obrigado!

Não há JSONField nos modelos. Mas há um prático pacote jsonfield disponível para usar o JSONField nos modelos do Django. Para instalar o pacote, faça:

 pip install jsonfield 

Uma vez instalado, faça:

 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') 

Não há módulo JSONField in models , você precisa:

 from django.contrib.postgres.fields import JSONField class Question(models.Model): question_text = JSONField() 

Django doc sobre JSONField .

Alterar a declaração de importação deve corrigir seu problema (isso me ajudou):

 from django.contrib.postgres.fields.jsonb import JSONField 

Então o JSONField está localizado no módulo jsonb agora.