AttributeError: модуль django.db.models не имеет атрибута JSONField
Следуя рекомендациям Django 3.1 для JSONField для всех поддерживаемых баз данных…https://docs.djangoproject.com/en/3.1/releases/3.1/
from django.db import models
class ContactInfo(models.Model):
data = models.JSONField()
… Заканчивается ошибкой:
AttributeError: модуль django.db.models не имеет атрибута JSONField
4 ответа
Я столкнулся с этой проблемой в своем приложении Docker, когда забыл обновить файл requirements.txt, чтобы использовать Django>=3.1.0,<3.2.0 вместо Django 3.0.8. После обновления мне также пришлось запустить сборку docker-compose.
Я увидел эту ошибку, потому что использовал
pipenv
в моем проекте и забыл запустить
pipenv shell
команду перед запуском приложения.
У меня такая же проблема при попытке запустить приложение на моем сервере. Локально (ubuntu-20.04) работает с
- Python == 3.6.7
- Django == 3.1.3
но на моем сервере (debian-stretch) с той же версией django и python у меня возникла такая же проблема! Я пробовал с django==3.0, и проблема остается
Nov 05...gunicorn[19911]: created_group = models.JSONField(default=default_created_group)
Nov 05...gunicorn[19911]: AttributeError: module 'django.db.models' has no attribute 'JSONField'
Единственный способ применить рекомендации JSONField новых моделей - использовать Django 3.1.
На самом деле наша папка содержала ошибочные файлы и папки, относящиеся к предыдущим git-пушам, которые никогда не очищались, среди них старая установка
Django v3.0.5
не стирается.
Доступ
wwwroot
с FTP
ftps://...ftp.azurewebsites.windows.net/site/wwwroot
и удаление всего его содержимого решило эту проблему.