Skip to content

QuickStart ​

Get from zero to a first editable content in a few minutes. DjSuperAdmin is a tiny Django app (no runtime dependencies beyond Django) that lets superusers edit page contents inline, right in the browser.

Compatible with Django 2.0 → 6.0 and Python 3.6+.

1. Install ​

bash
pip install djsuperadmin

Using uv? uv add djsuperadmin.

2. Add it to INSTALLED_APPS ​

python
# settings.py
INSTALLED_APPS = [
    # ...
    "djsuperadmin",
]

3. Include the urls ​

Needed for the one-argument tag form used below (it stores contents in DjSuperAdmin's built-in Content model). Add the urls to your root URLconf:

python
# urls.py
from django.urls import path, include

urlpatterns = [
    # ...
    path("", include("djsuperadmin.urls")),
]

If you only ever use the two-argument form with your own model, you can skip this step — see How to.

Then apply the migration for the built-in model:

bash
python manage.py migrate

4. Load the tags and inject the JS ​

In your base template, load the template tag library and drop {% djsuperadminjs %} once in the footer, just before </body>:

html
{% load djsuperadmintag %}
<!DOCTYPE html>
<html>
  <body>
    <!-- your page -->

    {% djsuperadminjs %}
  </body>
</html>

{% djsuperadminjs %} injects the DjSuperAdmin bundle (which lazy-loads SunEditor from a CDN on first edit). It renders only for authenticated superusers — for everyone else it outputs nothing.

5. Add your first editable content ​

Anywhere in the page body, add:

html
{% superadmin_content 'Hello world' %}

The one-argument form uses the built-in Content model, keyed by a hash of the default text. The content row is created automatically the first time the tag is rendered, starting with Hello world as its value.

6. Edit it ​

  1. Log in at /admin/ as a superuser.
  2. Open the page. Superusers see the content wrapped in an editable element (class djsuperadmin); everyone else just sees the plain value.
  3. Hover the content — a small toolbar appears with a ✏️ edit icon (and a ⟲ history icon if versioning is on). Click edit (or double-click the text) to open the WYSIWYG editor, make your changes, then click outside (or the save button) to store them — shown to all visitors.

That's it — you have a content your editors can change without touching code or the admin.

Next steps ​

  • How to → — bind the editor to your own model with DjSuperAdminMixin, use the raw (plain-text) editor with {% superadmin_raw_content %}, and enable in-place editing.