This is how it is structured
The code inside apps.py of accounts folder file is
from django.apps import AppConfig
class AccountsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = "apps.accounts"
The code inside Settings is
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'mysite.apps.accounts',
]
I tried changing 'mysite.apps.accounts', to 'mysite.apps.AccountsConfig',
and changing name = "apps.accounts" to name = "accounts"
I am new to Django and was following How to make a website with Python and Django - MODELS AND MIGRATIONS (E04) tutorial. Around 16:17 is where my error comes up when I enter python manage.py makemigrate to the vscode terminal
The error is
ImproperlyConfigured( django.core.exceptions.ImproperlyConfigured: Cannot import 'apps.accounts'. Check that 'mysite.apps.accounts.apps.AccountsConfig.name' is correct. Someone please help me.
CodePudding user response:
To define new app you do not need to add it's path just
app it's name like that 'accounts' note that app name is case sensitive
so your installed app became :
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'accounts',
]
CodePudding user response:
The solution was quite counterintuitive. You have to delete the
class AccountsConfig(AppConfig):
default_auto_field = 'django.db.models.BigAutoField'
name = "accounts"
from apps.py\accounts\apps\mysite. Then run python manage.py makemigrations and 2 new models 'UserPersona' and 'UserProfile' are created. the output in the terminal:
mysite\apps\accounts\migrations\0001_initial.py
- Create model UserPersona
- Create model UserProfile
