Почему 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?
Вернуться на верх