API

class django_custom_admin_pages.admin.CustomAdminConfig(app_name, app_module)

Bases: AdminConfig

AdminConfig for CustomAdminSite. Use if you are not subclassing CustomAdminSite.

default_site = 'django_custom_admin_pages.admin.CustomAdminSite'
class django_custom_admin_pages.admin.CustomAdminSite(*args, **kwargs)

Bases: AdminSite

An Admin site which can register standard django views as well as ModelAdmins. User admin.sites.register_view(AdminBaseView) to add a new custom admin view.

get_app_list(request, app_label=None)

Adds registered views to the app_list after generating ModelAdmin app_list.

Parameters:

request (HttpRequest) – request

Raises:

django.core.exceptions.ImproperlyConfigured – if invalid app_label on view class attribute

Returns:

app_list

Return type:

List[Dict]

get_urls()

Adds registered view urls after adding to ModelAdmin urls.

Returns:

url list

Return type:

list[path]

register_view(view_or_iterable: Iterable | AdminBaseView)

Register view(s) with the CustomAdminSite. The view(s) should be class-based views inheriting from AdminBaseView.

Parameters:

view_or_iterable (iterable[View] or View) – iterable of views or view

Raises:

admin.sites.AlreadyRegistered – If view is already registered.

Returns:

None

Return type:

None

unregister_view(view_or_iterable: Iterable | Type)

Unregisters view from CustomAdminSite.

Parameters:

view_or_iterable (iterable[View] or View) – iterable of views or view

Raises:

admin.sites.NotRegistered – If view is already not registered.

Returns:

None

Return type:

None

class django_custom_admin_pages.views.admin_base_view.AdminBaseView(**kwargs)

Bases: PermissionRequiredMixin, View

Base class for custom admin views

Variables:
  • view_name

    Display name for view in admin menu

    type:

    str or none

    default:

    none

  • route_name

    The name of the path to be created, defaults to no route name

    type:

    str or none

    default:

    none

  • route_path

    The slug for the path to be created, defaults to slugified view name

    type:

    str or none

    default:

    slug-of-view-name

  • permission_required

    iterable of permissions codenames required to use view. example format: app_label.codename

    type:

    tuple[str]

    default:

    ()

  • app_label

    The app label that the view will appear under. Must match an app in settings.INSTALLED_APPS. Defaults to settings.CUSTOM_ADMIN_DEFAULT_APP_LABEL

    type:

    [str] or none

    default:

    none

get_context_data(*args, **kwargs)

adds admin site context

get_permission_required()

Override this method to override the permission_required attribute. Must return an iterable.

has_permission()

Override this method to customize the way permissions are checked.

user_has_permission(user: AbstractBaseUser) bool

Used to check permission without instance.