Skip to main content

Expose Django management commands in the admin

Project description

pypi

django-managerie

:lightbulb: Expose Django management commands as forms in the admin

Requirements

  • Django 3.2+ (this project tracks Django's end-of-life policy)
  • Python 3.7+

Installation

Install the package as you would any Python package, then add django_managerie to your INSTALLED_APPS.

Automatic patching

This is the easiest way to get up and running. You can have Managerie patch the admin site's dashboard view to include pseudo-models with the name "Commands" for all apps where management commands are available, and while it's at it, it'll also include URLs of its own.

Hook up Managerie to your admin site (e.g. in urls.py, where you have admin.autodiscover()), like so:

from django.contrib import admin
from django_managerie import Managerie
# ...
managerie = Managerie(admin_site=admin.site)
managerie.patch()

No patching

This is likely safer (in the presence of slightly less tolerant 3rd party apps that mangle the admin, for instance), but you can't enjoy the luxury of the Commands buttons in the admin dashboard.

from django.contrib import admin
from django.conf.urls import include, url
from django_managerie import Managerie
# ...
managerie = Managerie(admin_site=admin.site)
# ...
urlpatterns = [
    # ...
    # ... url(r'^admin/', include(admin.site.urls)), ...
    url(r'^admin/', include(managerie.urls)),  # Add this!
]

Usage

If you allowed Managerie to patch your admin, superusers can now see Commands "objects" in the admin dashboard. If you didn't patch the admin, you can access a list of all commands through /admin/managerie/ (or wherever your admin is mounted).

If you click through to a command, you'll see the arguments of the command laid out as a form. Fill the form, then hit "Execute Command", and you're done! :sparkles:

Accessing the Django request from a managerie'd command

Managerie sets _managerie_request on the command instance to the current Django request. You can use it to access the request, for instance, to get the current user.

TODO

  • More argparse action support
  • Multiple-argument support (nargs)

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_managerie-0.5.tar.gz (7.3 kB view details)

Uploaded Source

Built Distribution

django_managerie-0.5-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file django_managerie-0.5.tar.gz.

File metadata

  • Download URL: django_managerie-0.5.tar.gz
  • Upload date:
  • Size: 7.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: python-httpx/0.23.0

File hashes

Hashes for django_managerie-0.5.tar.gz
Algorithm Hash digest
SHA256 b0c802a02347b9618bd148570e1c84dcfb72208015c9b42b333ebdbd67dda870
MD5 6c554768fafca3288a0fe5d771b8bbd7
BLAKE2b-256 1721cf8acd8a01d49043f3e59c245c5a940d9b148724eb813ffa4c8bf89c4324

See more details on using hashes here.

File details

Details for the file django_managerie-0.5-py3-none-any.whl.

File metadata

File hashes

Hashes for django_managerie-0.5-py3-none-any.whl
Algorithm Hash digest
SHA256 65fc5b136526b85b83e603caa1414caeaa9729dc3b39fd4816aad0a8bba6f913
MD5 a3b44d55bd2e2b9de44898bc5e8c3119
BLAKE2b-256 74be5ace8940a28ee3886905f9f498fac5b53b7678bec6022655562ad7882bab

See more details on using hashes here.

Supported by

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