[Django]-Remove default apps from Django-admin

121👍

In an admin.py you know will definitely be loaded, try:

admin.site.unregister(User)
admin.site.unregister(Group)
admin.site.unregister(Site)

10👍

In addition to the above double check your ordering of “INSTALLED_APPS” in “settings.py”

INSTALLED_APPS = [
    # django apps first
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',

    # custom apps below
    'my_app'
]

Otherwise it will cause an error. See here: Issue with Django admin registering an inline user profile admin

8👍

To get rid of Users and Groups I had to do in admin.py:

from django.contrib import admin
# Need to import this since auth models get registered on import.
import django.contrib.auth.admin
import django.contrib.auth.models
from django.contrib import auth

admin.site.unregister(auth.models.User)
admin.site.unregister(auth.models.Group)

3👍

Loop through all apps, and unregister any models they have registered.

from django.apps import apps


# De-register all models from other apps
for app_config in apps.get_app_configs():
    for model in app_config.get_models():
        if admin.site.is_registered(model):
            admin.site.unregister(model)


# Register only those models you want
...

1👍

If you got:

django.contrib.admin.sites.NotRegistered: The model Group is not
registered

Then make sure that your INSTALLED_APPS in proper order like this:

enter code hereINSTALLED_APPS = (
# [1] Django apps
'django.contrib.auth',
...

# [2] your custom apps
'anyproject.anytuff',
)

0👍

from django.apps import apps

for model in apps.get_models():
    if model.__name__ and admin.site.is_registered(model):
        admin.site.unregister(model)

this will unregister all models depending upon the position of app where this code is placed and it’s order inside INSTALLED_APPS so make sure the apps you want in your admin are placed after the app in which this code resides.

For Example: if this code is placed inside users app, it will unregister all models before users and all models after users can be registered.

Leave a comment