( django.core.exceptions.ImproperlyConfigured: Cannot import 'apps.accounts'. Проверьте, что 'mysite.apps.accounts.apps.AccountsConfig.name' является правильным

Вот как это структурировано The apps.py file is under apps which is under mysite. Код внутри файла apps.py из папки accounts имеет следующий вид

from django.apps import AppConfig
class AccountsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = "apps.accounts"

Код внутри Settings -

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'mysite.apps.accounts',
]

Я попробовал изменить 'mysite.apps.accounts', на 'mysite.apps.AccountsConfig', и изменить name = "apps.accounts" на имя = "accounts". Я новичок в Django и следовал руководству Как сделать сайт с помощью Python и Django - МОДЕЛИ И МИГРАЦИИ (E04). Примерно в 16:17 появляется ошибка, когда я ввожу python manage.py makemigrate в терминал vscode. Ошибка заключается в

ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Cannot import 'apps.accounts'. Проверьте, что 'mysite.apps.accounts.apps.AccountsConfig.name' является правильным. Кто-нибудь, пожалуйста, помогите мне.

Для определения нового приложения вам не нужно добавлять его путь, просто имя приложения вот так 'accounts' обратите внимание, что имя приложения чувствительно к регистру

таким образом, ваше установленное приложение стало :

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'accounts',
]

Решение оказалось довольно контринтуитивным. Вы должны удалить

class AccountsConfig(AppConfig):
    default_auto_field = 'django.db.models.BigAutoField'
    name = "accounts"

из apps.py\accounts\apps\mysite. Затем запускаем python manage.py makemigrations и создаются 2 новые модели 'UserPersona' и 'UserProfile'. вывод в терминале:

mysite\apps\accounts\migrations\0001_initial.py
    - Create model UserPersona
    - Create model UserProfile

Имя name в apps.py должно быть тем же (значением), которое вы указали в INSTALLED_APPS (в settings.py).

Правильно

from django.apps import AppConfig
class AccountsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = "mysite.apps.accounts"

код настроек

INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mysite.apps.accounts',
]
Вернуться на верх