Я на грани остроумия. После десятка часов поиска и устранения неисправностей, а может, и больше, я подумал, что наконец-то в деле, но потом я получил:
Model class django.contrib.contenttypes.models.ContentType doesn't declare an explicit app_label
В Интернете ТАК МАЛЕНЬКАЯ информация об этом, и никакое решение не решило мою проблему. Любой совет будет чрезвычайно признателен.
Я использую Python 3.4 и Django 1.10.
Из моего settings.py:
INSTALLED_APPS = [
'DeleteNote.apps.DeletenoteConfig',
'LibrarySync.apps.LibrarysyncConfig',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]
И мои файлы apps.py выглядят так:
from django.apps import AppConfig
class DeletenoteConfig(AppConfig):
name = 'DeleteNote'
и
from django.apps import AppConfig
class LibrarysyncConfig(AppConfig):
name = 'LibrarySync'
python
django
python-3.x
Slbox
источник
источник
Ответы:
Вам не хватает имени вашего приложения в файле настроек? Это
myAppNameConfig
класс по умолчанию, созданный в apps.py командой .manage.py createapp myAppName . Где myAppName - это имя вашего приложения.settings.py
Таким образом, файл настроек узнает, что вы хотите назвать своим приложением. Вы можете изменить его внешний вид позже в файле apps.py, добавив следующий код в
myAppName / apps.py
источник
import django django.setup()
в моем settings.py подINSTALLED_APPS
запись.Я получаю ту же ошибку и не знаю, как решить эту проблему. Мне потребовалось много часов, чтобы заметить, что у меня есть init.py в том же каталоге, что и manage.py из django.
Перед:
После:
Это довольно сбивает с толку, что вы получаете эту ошибку «не объявляет явную app_label». Но удаление этого файла инициализации решило мою проблему.
источник
У меня была точно такая же ошибка при запуске тестов с PyCharm. Я исправил это, явно установив
DJANGO_SETTINGS_MODULE
переменную окружения. Если вы используете PyCharm, просто нажмите кнопку « Изменить конфигурации» и выберите « Переменные среды» .Установите для переменной значение,
your_project_name.settings
и это должно исправить ситуацию.Похоже, эта ошибка возникает из-за того, что PyCharm запускает собственные тесты
manage.py
.источник
DJANGO_SETTINGS_MODULE
для каждой новой конфигурации тестового запуска Django и Django.DJANGO_SETTINGS_MODULE
в первый раз, когда яApply
тогда щелкнулOK
. Сделал второй раз и теперь работает. Похоже на немного странностей PyCharm.<app>.<module> import <class>
- автоматический импорт PyCharm отсутствовал<app>
. Как только я исправил это (также проверил зависимые модули), все заработало нормально.Я получил это, когда использовал,
./manage.py shell
затем я случайно импортировал из корневого каталога уровня проектаисточник
from fields import x
наfrom .fields import x
как новичок , использующий Python3 , я считаю, что это может быть ошибка импорта, а не ошибка Django
неправильно:
право:
это произошло несколько дней назад, но я действительно не могу это воспроизвести ... Я думаю, что с этим могут столкнуться только люди, плохо знакомые с Django. вот что я помню:
попробуйте зарегистрировать модель в admin.py:
попробуйте запустить сервер, ошибка выглядит так
изменить
user
на.user
, проблема решенаисточник
Только что у меня была такая же проблема. Я исправил свое, добавив пространство имен в имя приложения. Надеюсь, кто-то сочтет это полезным.
apps.py
источник
Я получил эту ошибку при импорте моделей в тесты, т.е. с учетом этой структуры проекта Django:
в файле, который
test_models.py
я импортировалMyModel
таким образом:Проблема была исправлена, если он был импортирован таким образом:
Надеюсь это поможет!
PS: Возможно, это немного поздно, но я не нашел в других ответах, как решить эту проблему в моем коде, и я хочу поделиться своим решением.
источник
from .models import MyModel
. Переход наfrom myapp.models import MyModel
устраненную проблему.Продолжая сталкиваться с этой проблемой и возвращаться к этому вопросу, я подумал, что расскажу, в чем была моя проблема.
Все, что @Xeberdee правильно, так что следуйте этому и посмотрите, решит ли это проблему, если бы не это была моя проблема:
В моем apps.py было вот что:
И все, что я сделал, это добавил имя проекта перед именем моего приложения следующим образом:
и это решило мою проблему, и после этого я смог запустить команду makemigrations и migrate! удачи
источник
У меня была эта ошибка сегодня при попытке запустить тесты Django, потому что я использовал сокращенный
from .models import *
синтаксис в одном из моих файлов. Проблема заключалась в том, что у меня была такая файловая структура:и в
models/__init__.py
я импортировал свои модели, используя сокращенный синтаксис:В моем приложении я импортировал такие модели:
Это вызвало
Django model doesn't declare an explicit app_label
при запуске./manage.py test
.Чтобы решить эту проблему, мне пришлось явно импортировать из полного пути в
models/__init__.py
:Это устранило ошибку.
H / t https://medium.com/@michal.bock/fix-weird-exceptions-when-running-django-tests-f58def71b59a
источник
В моем случае это произошло потому, что я использовал относительный путь к модулю в urls.py на уровне проекта ,
INSTALLED_APPS
аapps.py
не в корне проекта. т.е. абсолютные пути к модулям во всем, а не относительные пути модулей + хаки.Независимо от того, насколько я испортил пути в своем приложении
INSTALLED_APPS
иapps.py
в моем приложении, я не мог получить обаrunserver
иpytest
работать, пока все три из них не были внедрены в корень проекта.Структура папки:
Со следующим, я мог бы запускать
manage.py runserver
и стрелять с wsgi и использовать представленияportal
приложений без проблем, но pytest выдает ошибку,ModuleNotFoundError: No module named 'apps'
несмотряDJANGO_SETTINGS_MODULE
на правильную настройку.конфиг / settings.py:
biz_portal / приложения / портал / apps.py:
конфиг / urls.py:
Изменение ссылки приложения в конфигурации / settings.py до
biz_portal.apps.portal.apps.PortalConfig
иPortalConfig.name
вbiz_portal.apps.portal
разрешенных pytest работать (я не имею тесты дляportal
взглядов еще) , ноrunserver
будет ошибка сНаконец, я попытался
apps.portal
увидеть, что по-прежнему использует относительный путь, и обнаружил, что config / urls.py также следует использоватьbiz_portal.apps.portal.urls
.источник
Я столкнулся с этой ошибкой, когда пытался создать миграции для одного приложения, которое имело неправильные миграции из-за слияния git. например
Когда я удалил его миграции, а затем запустил:
ошибка не произошла, и миграции сгенерированы успешно.
источник
У меня была аналогичная проблема, но я смог решить свою, явно указав app_label с помощью Meta Class в моем классе моделей
источник
Я получил эту ошибку при попытке обновить приложение Django Rest Framework до DRF 3.6.3 и Django 1.11.1.
Для кого-то еще в этой ситуации я нашел свое решение в проблеме GitHub , которая заключалась в том, чтобы отключить
UNAUTHENTICATED_USER
параметр в настройках DRF :источник
Я просто столкнулся с этой проблемой и понял, что пошло не так. Поскольку ни один из предыдущих ответов не описывал проблему, как это случилось со мной, я бы опубликовал ее для других:
python migrate.py startapp myApp
из корневой папки моего проекта, а затем переместите myApp в дочернюю папку с помощьюmv myApp myFolderWithApps/
.python migrate.py makemigrations
. Все прошло хорошо.myFolderWithApps.myApp
ссылку на свое приложение, но я забыл обновить MyApp / apps.py. Поэтому я исправил myApp / apps.py, settings / INSTALLED_APPS и свой путь импорта во втором приложении.Короче говоря: - проблема изначально возникла из-за неправильного имени приложения в apps.py myApp, в настройках и в пути импорта моего второго приложения. - но этого было недостаточно, чтобы исправить пути в этих трех местах, поскольку миграции были созданы с импортом, ссылающимся на неправильное имя приложения. Таким образом, во время миграции повторялась одна и та же ошибка (за исключением случаев миграции).
Итак ... проверьте свои миграции и удачи!
источник
У меня аналогичная ошибка при создании API в Django rest_framework.
Ответ luke_aus помог мне, исправив мой urls.py
из
к
источник
В моем случае эта ошибка возникла при переносе кода с Django 1.11.11 на Django 2.2. Я определял собственный производный класс FileSystemStorage. В Django 1.11.11 у меня была следующая строка в models.py:
а позже в файле у меня было определение класса:
Однако в Django 2.2 мне нужно явно ссылаться на
FileSystemStorage
класс при импорте:и вуаля !, ошибка исчезнет.
Обратите внимание, что все сообщают последнюю часть сообщения об ошибке, выданного сервером Django. Однако, если вы прокрутите вверх, вы найдете причину в середине этой ошибки mambo-jambo.
источник
в моем случае мне удалось найти исправление, и, посмотрев на код всех остальных, это может быть та же проблема .. Мне просто нужно было добавить django.contrib.sites в список установленных приложений в settings.py файл.
надеюсь, это кому-то поможет. это мой первый вклад в сообщество программистов
источник
TL; DR: добавление пустого __init__.py проблему для меня.
Я получил эту ошибку в PyCharm и понял, что мой файл настроек вообще не импортируется. При этом не было очевидной ошибки, но когда я поместил какой-то бессмысленный код в settings.py, это не вызвало ошибки.
У меня был settings.py внутри папки local_settings . Однако я бы не стал включать __init__.py в ту же папку, чтобы его можно было импортировать. Как только я добавил это, ошибка исчезла.
источник
Если у вас все правильно настроено, это может быть просто беспорядок при импорте. следите за тем, как вы импортируете проблемную модель.
Следующее не сработает
from .models import Business
. Вместо этого используйте полный путь импорта:from myapp.models import Business
источник
Если ничего не помогает и вы видите эту ошибку при попытке импорта в PyCharm «консоль Python» (или «консоль Django»):
Попробуйте перезапустить консоль.
Это довольно неловко, но мне потребовалось время, прежде чем я понял, что забыл это сделать.
Вот что произошло:
Добавил новое приложение, затем добавил минимальную модель, а затем попытался импортировать модель в консоль Python / Django (PyCharm pro 2019.2). Это вызвало
doesn't declare an explicit app_label
ошибку, потому что я не добавил новое приложение вINSTALLED_APPS
. Итак, я добавил приложение вINSTALLED_APPS
, снова попытался импортировать, но все равно получил ту же ошибку.Пришел сюда, прочитал все остальные ответы, но ничего не подошло.
Наконец меня осенило, что я еще не перезапустил консоль Python после добавления нового приложения в
INSTALLED_APPS
.Примечание: невозможность перезапустить консоль PyCharm Python после добавления нового объекта в модуль также является отличным способом получить очень запутанный
ImportError: Cannot import name ...
источник
.env
файл и изо всехO ... M ... G Я тоже получал эту ошибку, я потратил на нее почти 2 дня, и теперь мне наконец удалось ее решить. Честно говоря ... ошибка не имела ничего общего с тем, в чем была проблема. В моем случае это был простой синтаксис. Я пытался запустить автономный модуль Python, который использовал некоторые модели django в контексте django, но сам модуль не был моделью django. Но я объявлял класс неправильным
вместо того, чтобы иметь
я делал
что явно неверно. Сообщение настолько вводит в заблуждение, что я не мог с собой поделать, но подумал, что это какая-то проблема с конфигурацией или просто неправильное использование django, поскольку я очень новичок в этом.
Я поделюсь этим здесь для кого-то новичка, поскольку я, переживая ту же глупость, надеюсь, может решить их проблему.
источник
Я получил эту ошибку после того, как переместил
SECRET_KEY
извлечение из переменной среды и забыл установить ее при запуске приложения. Если у вас есть что-то подобное в вашемsettings.py
затем убедитесь, что вы действительно устанавливаете переменную среды.
источник
Скорее всего, у вас зависимый импорт .
В моем случае я использовал класс сериализатора в качестве параметра в моей модели, а класс сериализатора использовал эту модель: serializer_class = AccountSerializer
И в файле "сериализаторов":
источник
Я получил эту ошибку сегодня и оказался здесь после поиска в Google. Ни один из существующих ответов не имеет отношения к моей ситуации. Единственное, что мне нужно было сделать, это импортировать модель из моего
__init__.py
файла на верхнем уровне приложения. Мне пришлось переместить свой импорт в функции, использующие модель.Кажется, у Django есть какой-то странный код, который может давать сбой во многих разных сценариях!
источник
Я получил эту ошибку и сегодня. Сообщение ссылается на какое-то конкретное приложение из моих приложений в INSTALLED_APPS . Но на самом деле это не имело ничего общего с этим конкретным приложением. Я использовал новую виртуальную среду и забыл установить некоторые библиотеки, которые я использовал в этом проекте. После того, как я установил дополнительные библиотеки, все заработало.
источник
Для пользователей PyCharm: у меня была ошибка при использовании не «чистой» структуры проекта.
Был:
Сейчас:
Вот много хороших решений, но я думаю, прежде всего, вы должны очистить структуру своего проекта или настроить параметры PyCharm Django перед настройкой
DJANGO_SETTINGS_MODULE
переменных и так далее.Надеюсь, это кому-то поможет. Ура.
источник
Проблема в том, что:
Вы внесли изменения в свой файл моделей, но еще не добавили их в БД, но вы пытаетесь запустить Python manage.py runserver.
Запустите Python manage.py makemigrations
Python manage.py migrate
Теперь Python manage.py runserver, и все должно быть в порядке.
источник