Почему Django не может запуститься должным образом?
Я недавно работаю над Django, следуя описанию из книги Python Crash Course. Я следовал каждому шагу и пытался перезапустить с самого начала несколько раз, но так и не смог решить проблему (даже переустановил MacOS, чтобы получить более чистый рабочий стол). Вот мой код:
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 represent model'''
return text
Следы ниже:
Traceback (most recent call last):
File "/Users/bryan/Desktop/python/learning_log/learning_logs/models.py", line 3, in <module>
class Topic(models.Model):
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/db/models/base.py", line 108, in __new__
app_config = apps.get_containing_app_config(module)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/apps/registry.py", line 253, in get_containing_app_config
self.check_apps_ready()
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/apps/registry.py", line 135, in check_apps_ready
settings.INSTALLED_APPS
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/conf/__init__.py", line 82, in __getattr__
self._setup(name)
File "/Library/Frameworks/Python.framework/Versions/3.10/lib/python3.10/site-packages/django/conf/__init__.py", line 63, 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.
[Finished in 304ms with exit code 1]
[cmd: ['python3', '-u', '/Users/bryan/Desktop/python/learning_log/learning_logs/models.py']]
[dir: /Users/bryan/Desktop/python/learning_log/learning_logs]
[path: /Library/Frameworks/Python.framework/Versions/3.10/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin]
Вы пытаетесь получить доступ к text
в методе __str__
и из-за этого произошел сбой, чтобы получить доступ к text
вам нужно изменить код как self.text
def __str__(self):
'''Return a string represent model'''
return self.text
Похоже, что ошибка возникает из-за того, что вы запускаете файл models.py напрямую. При работе с Django вы редко запускаете .py файл напрямую. Обычно вы выполняете некоторые команды в терминале, а затем взаимодействуете с проектом в браузере.
- Работаете ли вы в активной виртуальной среде?
- Выполнили ли вы команду
makemigrations
для вашего приложения? - Выполнили ли вы команду
python manage.py migrate
? - Что происходит, когда вы выполняете команду
python manage.py runserver
?