Вот как это устроено
Код внутри приложения.py файла папка учетных записей:
from django.apps import AppConfig
class AccountsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = "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',
]
Я попытался изменить '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'. Check that 'mysite.apps.accounts.apps.AccountsConfig.name' is correct. Someone please help me.
Чтобы определить новое приложение, вам не нужно просто добавлять его путь
приложение это имя так '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
Когда я это делаю, я получаю сообщение об ошибке ModuleNotFoundError: нет модуля с именем «учетные записи»