Skip to main content

Utility code and patterns.

Project description

Utility code and patterns.

  • Free software: BSD 2-Clause License

Installation

pip install django-admin-utils

You can also install the in-development version with:

pip install https://github.com/ionelmc/django-admin-utils/archive/master.zip

Documentation

Terse admin.py

from django.contrib import admin
from admin_utils import register, inline

from .models import MyModel, OtherModel

@register(MyModel)
class MyModelAdmin(admin.ModelAdmin):
    inlines = inline(OtherModel),

If you want custom admin sites:

customsite = admin.AdminSite()

@register(MyModel, site=customsite)
class MyModelAdmin(admin.ModelAdmin):
    inlines = inline(OherModel),

Mock admin (mount your views in admin using model wrappers)

Have you ever wanted a page in the admin that appears in the app list but you don’t have any models ? Now you can have that without patching up the admin Site or the templates. Just put this in your admin.py:

from django.urls import path
from admin_utils import make_admin_class

make_admin_class(
    app_label="test_app",
    model_name="Test1",
    urls=[
        path('', views.root, name='test_app_test1_changelist'),
        path('level1/', views.level1, name='level-1'),
        path('level1/level2/', views.level2, name='level-2'),
    ],
)

To use different admin site:

make_admin_class(
    site=customsite,
    app_label="test_app",
    model_name="Test1",
    urls=[
        path('', views.root, name='test_app_test1_changelist'),
        path('level1/', views.level1, name='level-1'),
        path('level1/level2/', views.level2, name='level-2'),
    ],
)

Alternatively you can mount a single view with a decorator:

from admin_utils import register_view

@register_view(
    site=customsite,
    app_label="test_app",
    model_name="Test1",
)
def root(request):
    ...

Admin mixins

admin_utils.mixins.FoldableListFilterAdminMixin

Adds nice filter toggling with cookie support. Largely based on django-foldable-list-filter but without the transition effect and no pictures.

Example:

from admin_utils.mixins import FoldableListFilterAdminMixin

class MyModelAdmin(FoldableListFilterAdminMixin, admin.ModelAdmin):
    pass

Looks like this:

Screenshort of FoldableListFilterAdminMixin

admin_utils.mixins.FullWidthAdminMixin

Make the changelist expand instead of having the width of the windows and having that nasty inner scrollbar. You never gonna notice that if your table is long !

Example:

from admin_utils.mixins import FoldableListFilterAdminMixin

class MyModelAdmin(FoldableListFilterAdminMixin, admin.ModelAdmin):
    pass

You probably didn’t even notice you had this problem:

Screenshort of FullWidthAdminMixin

Changelog

2.1.0 (2025-03-22)

  • Added support for Django 5.2.

  • Increased minimum versions to Django 4.2 and Python 3.9.

2.0.4 (2021-07-19)

  • Fixed mock admin regression and add test.

2.0.3 (2021-07-19)

  • Made the mock admin behave as without editable permissions (implemented the missing has_view_permission method).

2.0.2 (2021-07-18)

  • Exposed the fake hidden model as a fake_model attribute.

2.0.1 (2021-07-18)

  • Added missing import for admin_utils.register_view.

2.0.0 (2021-07-18)

  • Dropped support for Python 2.7 and Django 1.11.

  • Added the register_view decorator.

  • Update examples/readme.

  • Various bugfixes.

1.0.0 (2021-07-14)

  • Fixed a bunch of regressions with Django 3.2.

0.3.0 (2014-02-02)

  • Forgot to add any details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

django_admin_utils-2.1.0.tar.gz (66.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

django_admin_utils-2.1.0-py3-none-any.whl (9.1 kB view details)

Uploaded Python 3

File details

Details for the file django_admin_utils-2.1.0.tar.gz.

File metadata

  • Download URL: django_admin_utils-2.1.0.tar.gz
  • Upload date:
  • Size: 66.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for django_admin_utils-2.1.0.tar.gz
Algorithm Hash digest
SHA256 855f145897f64be38b583bd599c8cd80ab7d6effb9e15caadeb1d3bbbf335c40
MD5 ad9426b81aa21507dd83ff48cead3faa
BLAKE2b-256 15d043faf9c07f86c181896017b1d29151261400850aee2d1a57ffb3ae525c0a

See more details on using hashes here.

File details

Details for the file django_admin_utils-2.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for django_admin_utils-2.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 7628bd39ed0982a40b0e80e8d1cc95133f64b6a62a8682744ae3991ac08cb808
MD5 0082eddf958d4af2faac39b66b22e2f8
BLAKE2b-256 65866fba6f633715d2ce7658ca0ca41fdda0d80cbc1a844e6266dec4171401f8

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page