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