#sites.py from django.contrib.admin.sites import AdminSite class AdminMixin(object): """Mixin for AdminSite to allow custom dashboard views.""" def __init__(self, *args, **kwargs): return super(AdminMixin, self).__init__(*args, **kwargs) def get_urls(self): """Add our dashboard view to the admin urlconf. Deleted the default index.""" from django.conf.urls import patterns, url from views import DashboardWelcomeView urls = super(AdminMixin, self).get_urls() del urls[0] custom_url = patterns('', url(r'^$', self.admin_view(DashboardWelcomeView.as_view()), name="index") ) return custom_url + urls class SitePlus(AdminMixin, AdminSite): """ A Django AdminSite with the AdminMixin to allow registering custom dashboard view. """