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и удаление всего его содержимого решило эту проблему.

Другие вопросы по тегам