Home > other >  django.contrib.admin.sites.NotRegistered: The model User is not registered
django.contrib.admin.sites.NotRegistered: The model User is not registered

Time:05-30

I am trying to register my custom user model to the admin site (I have name my custom user model User), but I am getting this error. as I understood that I should unregister the original User model then register my custom model and this what I have tried to do!!

---------setings.py-------
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'users', # This is custom user model

]
AUTH_USER_MODEL = 'users.User'

---------users/admin.py-------
from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from .models import User as MyUser # my Custom User Model
from django.contrib.auth.models import User
admin.site.unregister(User)

class MyUserAdmin(UserAdmin):
    list_display = ('username', 'email')
admin.site.register(MyUser,MyUserAdmin)

CodePudding user response:

You need to modify INSTALLED_APPS block

You need add below string Instead of just "users"

**'users.apps.UsersConfig'**

Users- your app name apps - one file would be created in your app folder Userconfig - config function in your apps.py file.

CodePudding user response:

this error disappear by importing PermissionsMixin and pass it to my custom user model class as a second argument in model.pyfile and it worked

from django.contrib.auth.models import PermissionsMixin

class User(AbstractBaseUser,PermissionsMixin):
    username = models.CharField(max_length=50, unique=True)
    email = models.EmailField(max_length=100, unique=True)
    first_name = models.CharField(max_length=50, null=True, blank=True)


  • Related