Skip to main content

django-admin-keyshortcuts

A Django package that adds keyboard shortcuts to the Django Admin interface for improved accessibility.

Demo

A static preview of Django Admin with Keyboard Shortcuts is available at:
https://khanxmetu.github.io/django-admin-keyshortcuts-demo/

Setup

Install from pip:
pip install django-admin-keyshortcuts

then add django_admin_keyshortcuts before django.contrib.admin in your INSTALLED_APPS:

INSTALLED_APPS = (
    ...,
    'django_admin_keyshortcuts',
    'django.contrib.admin', 
    ...,
)

Usage

The following is a list of supported shortcuts

Description Shortcut (Windows/Linux) Shortcut (MacOS) Scope
Show shortcuts help dialog ? ? Global
Go to the site index g i g i Global
Toggle sidebar [ [ Global (where it exists)
Select previous row for action k k Change List
Select next row for action j j Change List
Toggle row selection x x Change List
Focus actions dropdown a a Change List
Focus search field / / Change List
Save and go to change list Ctrl+s ⌘+s Change Form
Save and add another Ctrl+Shift+S ⌘+Shift+S Change Form
Save and continue editing Ctrl+Alt+s ⌘+⌥+s Change Form
Delete Alt+d ⌥+d Change Form
Confirm deletion Alt+y ⌥+y Delete Confirmation
Cancel deletion Alt+n ⌥+n Delete Confirmation

Adding Custom Shortcuts

This package uses the GitHub Hotkey library for handling shortcuts. You can add new ones by extending templates:

  1. In the admin template, locate the element you want triggered by the shortcut.
  2. Extend the template and add data-hotkey attribute to the target element, e.g. data-hotkey="Mod+s". See hotkey string format for supported modifier and key combinations.
  3. Document the shortcut in the help dialog.

View-specific (per page) shortcuts: Extend change_list_shortcuts, change_form_shortcuts, or delete_confirmation_shortcuts.
Example:

{% extends "admin/change_list_shortcuts.html" %}
{% load shortcuts %}
{% block extra_shortcuts %}
{{ block.super }}
  <section>
    <h3>Custom Shortcuts</h3>
    <dl>
        <dt class="shortcut-description">A Custom Shortcut</dt>
        <dd class="shortcut-keys">{% shortcut_format_kbd "Mod+s" %}</dd>
    </dl>
</section>
{% endblock %}

Global shortcuts:
Example:

{% extends "admin/shortcuts.html" %}
{% load shortcuts %}
{% block global_shortcuts %}
  {{ block.super }}
  <section>
    <h3>Custom Shortcuts</h3>
    <dl>
      <dt class="shortcut-description">A Custom Shortcut</dt>
      <dd class="shortcut-keys">{% shortcut_format_kbd "Mod+S" %}</dd>
    </dl>
  </section>
{% endblock %}

Tip: Use the Mod key (⌘ on macOS, Ctrl on Windows/Linux). It ensures shortcuts are OS-independent and automatically map to the correct key per platform.

About

The django-admin-keyshortcuts package is being developed with the goal of eventually merging its functionality into Django core.
This package has been undergoing refinements with respect to GSoC 2025: Keyboard Shortcuts Specification

Release files for django-admin-keyshortcuts 0.2.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for django-admin-keyshortcuts 0.2.2
File Size Uploaded
django_admin_keyshortcuts-0.2.2.tar.gz 10.7 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for django-admin-keyshortcuts 0.2.2
File Interpreter ABI Platform
django_admin_keyshortcuts-0.2.2-py3-none-any.whl Python 3 none any Details

Total release size: 29.6 kB

Release files / django_admin_keyshortcuts-0.2.2.tar.gz

Download URL django_admin_keyshortcuts-0.2.2.tar.gz
Size 10.7 kB
Tags Source
SHA-256 checksum
How to use checksums
f008f98664b24efe1a55e549377c52c6235cc90f206d1f0dc453f70278428255
BLAKE2b-256 checksum
How to use checksums
9dd7c85b36a9fd0e7c9107f55e66bc27052c8f70aa9053b523d9494318214713
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.16

Release files / django_admin_keyshortcuts-0.2.2-py3-none-any.whl

Download URL django_admin_keyshortcuts-0.2.2-py3-none-any.whl
Size 18.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b841c9c0750c898fb689abbfe1eecf4f0e4c2d67854b10e36b529416074196a3
BLAKE2b-256 checksum
How to use checksums
2c494b41620abe165b318d4453dada421a0f977613f6c195c5c66ed81f3085ab
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.8.16

Release history Release notifications | RSS feed

This release

0.2.2 This release

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.2

2 release files

0.1.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page