( django.core.exceptions.ImproperlyConfigured: Cannot import 'apps.accounts'. Проверьте, что 'mysite.apps.accounts.apps.AccountsConfig.name' является правильным
Вот как это структурировано
.
Код внутри файла 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',
]