[Fixed]-Django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'auth.User' that has not been installed


This problems generally resides between 2 reasons.

  1. When the dependencies order in installed apps are reversed.
  2. When you haven’t mentioned the dependency in the installed apps at all.

Here in this case grappelli seems to raise the issue telling auth.User not found. It means it is not able to find any package auth. If you are using the default user model remove that AUTH_USER_MODEL setting from the config or if you are using any custom user model in package β€˜auth’ list it in installed apps.



I run into the op issue as soon as I decided to migrate from a single models.py file to a models folder containing a user.py file to define the custom User model.

In that case, as explained here, the trick is to ensure to import your model info the __init__.py file of your models folder.

For example, if your directory structure is:


In the __init__.py file, add from .user import User

πŸ‘€David Dahan


A complete traceback would help to diagnose it better. Prima facie, it seems to me as a dependency issue caused due to migration. Check what Django docs have to say about this –

Due to limitations of Django’s dynamic dependency feature for
swappable models, you must ensure that the model referenced by
AUTH_USER_MODEL is created in the first migration of its app (usually
called 0001_initial); otherwise, you will have dependency issues.

Here’s the link – https://docs.djangoproject.com/en/1.9/topics/auth/customizing/



if your application is not called auth you have to replace it:


Once I had the same issue in v-2.2 then I realized that the spelling of β€œregister” in the admin.py file was wrong.



This is becuase you have an app β€˜authβ€˜ in which you have defined your user model.
and You have not mentioned app name in INSTALLED_APPS dictionary.

Try Adding your app name in INSTALLED_APPS and check.


Make sure you write your code of custom user in models.py file.

πŸ‘€Aashish Kumar


This error may also appear due to a missing import of a model in an admin.py (Django version 2.2).



Try make the migrations first; python manage.py makemigrations. This might detect if you have any problems with your imports which you can fix then run the server to verify



I doubt this is the typical answer, but I hit this problem when I using reverse and should have been using reverse_lazy. Changing to reverse_lazy fixed it for me.


This error appeared when I had an improperly configured model and added it to the admin backend.

   class VolunteerExperience:

   class VolunteerExperience(models.Model):

I hope this helps someone who gets misdirected by the exception message "django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'auth.User' that has not been installed"

Now I know that this message most likely indicates an incorrectly configured model.


In addition to all the other answers, I ran into this issue when I upgraded Django. I had an import that was deprecated from one release to another. Make sure to check the release notes/version histories before upgrading any package.


πŸ‘€Paul Tuckett


if anyone get this error again, maybe this will help

I hardly struggled to debug this error the whole day.

The problem is that I wrote the model in my main app and not in the authentication app.

πŸ‘€Mario Shaya


I spent a lot of time in debugging this but I don’t know how this problem was occurring but this just got solved when I change my class name from:

class User(AbstractUser):
class CustomUser(AbstractUser):
#and in settings.py:
AUTH_USER_MODEL = 'api.CustomUser'
πŸ‘€Sheraz Asghar


I had the same issue and solved by:

Commenting out USER GROUPS that I had created in the models.py; forexample.


Final word:

  1. Comment your defined user groups forexample: #TA,created=Group.objects.get_or_create(name='teachers')
  2. Run python makemigrations your_project_name
  3. python migrate your_project_name
  4. Then, uncomment your defined your groups: TA,created=Group.objects.get_or_create(name='teachers')

And you are good to go.


In my case, I had to update the admin.py file and include my user model. For example, I have a folder called model inside my app, which has a folder login and a usuario.py file with a Usuario class.

Then, in the app folder, I updated the admin.py file to include that model.

from django.contrib import admin

# Register your models here.
from .model.login.usuario import Usuario


For me, it turned out to be the placement of an import statement.

I needed to import model Notes into my users/models.py from a separate Django project where I couldn’t change anything.

Model Notes had a fk-field to User via django.contrib.auth.get_user_model(). I needed to inherit this model in the same models.py file as my custom User model.

Moving the import statement after the User model fixed the error:

from django.contrib.auth.models import AbstractUser

class UserProfile(AbstractUser):

from notes_project.notes.models import Note

class SpecialNotes(Notes):
πŸ‘€Yuri Galin

Leave a comment