1. Documentation
  2. Custom sites

Custom sites

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.

Overriding the default admin site

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.