Django неправильно настроен
Я довольно новичок в программировании и изучал Python по учебнику No Starch Python. Там есть глава о Django, и я следовал шагам учебника. Однако, когда я запускаю программу:
from django.db import models
class Topic(models.Model):
"""A topic the user is learning about"""
text = models.CharField(max_length=200)
date_added = models.DateTimeField(auto_now_add=True)
def __str__(self):
"""Return a string representation of the model."""
return self.text
Я получу следующее сообщение об ошибке:
Traceback (most recent call last):
File "/Users/admin/learning_log2/learning_logs/models.py", line 4, in <module>
class Topic(models.Model):
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/django/db/models/base.py", line 127, in __new__
app_config = apps.get_containing_app_config(module)
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/django/apps/registry.py", line 260, in get_containing_app_config
self.check_apps_ready()
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/django/apps/registry.py", line 137, in check_apps_ready
settings.INSTALLED_APPS
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/django/conf/__init__.py", line 92, in __getattr__
self._setup(name)
File "/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/django/conf/__init__.py", line 72, in _setup
raise ImproperlyConfigured(
django.core.exceptions.ImproperlyConfigured: Requested setting INSTALLED_APPS, but settings are not configured. You must either define the environment variable DJANGO_SETTINGS_MODULE or call settings.configure() before accessing settings.
Может ли кто-нибудь сказать мне, почему так происходит и что я могу сделать? Большое спасибо. P.S. Я знаю, что уже есть пост об этом, но я попробовал то, что было написано, без каких-либо результатов. Также, я на macOS High Sierra версии 10.13.6, если эта информация имеет значение.
Я перепробовал все, что смог найти в Интернете, но, похоже, ничего не помогает. У меня даже нет фундаментального понимания проблемы.
У меня нет даже фундаментального понимания проблемы
Поскольку вы определяете модель, Django предполагает, что вы можете захотеть хранить экземпляры этой модели в базе данных.
Для этого Django необходимо знать детали соединения для выбранной вами базы данных, и эти детали хранятся в модуле settings.py
.
Вы не сказали Django, где найти этот модуль.
Вам необходимо указать имя приложения django в файле settings.py перед началом его использования.
Вы были созданы Django Application перед созданием этой модели 'Topic' с помощью команды
python manage.py startapp core
вам нужно указать имя приложения (в приведенном выше случае это 'core') в файле settings.py в массиве, как показано ниже
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'core' #new app name
]