Я пытаюсь импортировать одну из моих моделей в консоль Python в PyCharm и получаю следующую ошибку:
from damage.models import Damage
Traceback (most recent call last):
File "<input>", line 1, in <module>
File "C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 20, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\projects\django\deya\damage\models.py", line 2, in <module>
from django.contrib.auth.models import User
File "C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 20, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\projects\django\deya\venv\lib\site-packages\django\contrib\auth\models.py", line 2, in <module>
from django.contrib.auth.base_user import AbstractBaseUser, BaseUserManager
File "C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 20, in do_import
module = self._system_import(name, *args, **kwargs)
File "C:\projects\django\deya\venv\lib\site-packages\django\contrib\auth\base_user.py", line 47, in <module>
class AbstractBaseUser(models.Model):
File "C:\projects\django\deya\venv\lib\site-packages\django\db\models\base.py", line 100, in __new__
app_config = apps.get_containing_app_config(module)
File "C:\projects\django\deya\venv\lib\site-packages\django\apps\registry.py", line 244, in get_containing_app_config
self.check_apps_ready()
File "C:\projects\django\deya\venv\lib\site-packages\django\apps\registry.py", line 127, in check_apps_ready
raise AppRegistryNotReady("Apps aren't loaded yet.")
django.core.exceptions.AppRegistryNotReady: Apps aren't loaded yet.
Все остальное в моем проекте работает нормально.
Я могу импортировать свои модели, когда запускаю
python manage.py shell
из командной строки или даже в PyCharm Terminal.
Как я могу это решить?
Да, я делаю C:\projects\django\deya\venv\Scripts\python.exe "C:\Program Files\JetBrains\PyCharm 2017.3.3\helpers\pydev\pydevconsole.py" 6550 6551 - это команда при запуске консоли Python. C:\projects\django\deya\venv - виртуальный
что вы получите, если запустите python manage.py runserver, включили ли вы приложение в INSTALLED_APPS, где определена модель повреждений?
python manage.py runserver работает нормально, и я также включил приложение в INSTALLED_APPS






К сожалению, я не думаю, что с Django можно работать без инициализации python manage.py runserver. Что происходит, когда вы запускаете это в терминале, получаете ли вы какие-либо ошибки?
На самом деле можно запустить Django вне manage.py, в вашем скрипте вам просто нужно включить: from django.conf import settings from django.core.wsgi import get_wsgi_application from django.core.management import call_command application = get_wsgi_application(), а также добавить переменную среды DJANGO_SETTINGS_MODULE, чтобы django знал, откуда загрузить файл settings.py ...
@Lingster Да, вне обычной настройки конфигурации - я думаю, это возможно. :) Я предполагаю, что у этого пользователя не было опыта работы с Django до или очень начального уровня.
DJANGO_SETTINGS_MODULE определяется в настройках проекта. Определяю вручную по os.environ.setdefault("DJANGO_SETTINGS_MODULE", "deya.settings"). Я пробовал также import django и django.setup (). После всего этого я получаю сообщение об ошибке «RuntimeError: класс модели django.contrib.contenttypes.models.ContentType не объявляет явный app_label и не находится в приложении в INSTALLED_APPS».
@kpk Привет, дефляция ярлыка приложения определенно вызвана тем, что вы запускаете его вне сервера запуска python manage.py.
У вас есть виртуальная машина?