In order to create a custom admin site, Unfold provides the unfold.sites.UnfoldAdminSite
class which can be used as follows:
# sites.py
from django.contrib import admin
from unfold.sites import UnfoldAdminSite
class CustomAdminSite(UnfoldAdminSite):
pass
custom_admin_site = CustomAdminSite(name="custom_admin_site")
# urls.py
from django.urls import path
from .sites import custom_admin_site
urlpatterns = [
# other URL patterns
path("admin/", custom_admin_site.urls),
]
# models.py
from django.contrib.auth.models import User
from unfold.admin import ModelAdmin
@admin.register(User, site=custom_admin_site)
class UserAdmin(ModelAdmin):
model = User
Note: If you use the default django.contrib.admin.AdminSite
you will receive a NoReverseMatch
error because the default admin site does not contain all URL patterns required by Unfold.
If you want to override the default admin site by setting the default_site
attribute of a custom django.contrib.admin.apps.AdminConfig
class, you must install Unfold using unfold.apps.AppConfig
instead of just unfold
in INSTALLED_APPS
.
# settings.py
INSTALLED_APPS = [
"unfold.apps.BasicAppConfig", # App config not overriding `django.contrib.admin.site`
# some other apps
"django.contrib.admin",
"your_app",
]
# apps.py
from django.contrib.admin.apps import AdminConfig
class MyAdminConfig(AdminConfig):
default_site = "myproject.sites.CustomAdminSite"
© 2023 - 2025 Created by unfoldadmin.com. All rights reserved.