Für Entwickler · Aktualisiert 23.10.2026

Ein Plugin schreiben

Mit der offiziellen Vorlage in einer Minute zum kompletten Plugin.

Mit der Vorlage (empfohlen)

jds plugin neu "Mein Plugin"

Die offizielle Cookiecutter-Vorlage fragt, was dein Plugin enthalten soll – Einstellungsseite, Shortcode, eigene Seite, Datenbank-Tabelle mit Admin, Tests – und erzeugt ein komplettes, lauffähiges Plugin, das die Prüfung des Marktplatzes sofort besteht. Mit --standard wird ohne Nachfrage alles erzeugt.

Ohne JDS-Web-Installation geht es auch direkt mit Cookiecutter:

pip install cookiecutter
cookiecutter https://jds-web.dpdns.org/marktplatz/plugin-vorlage.zip

Danach jds setup, Server neu starten, im Admin aktivieren und mit jds test plugins.mein_plugin die mitgelieferten Tests ausführen.

So sieht ein Plugin aus

Das Herzstück ist plugins/mein_plugin/plugin.py:

PLUGIN = {
    "name": "Mein Plugin",
    "description": "Was es macht.",
    "version": "1.0",
    "settings": {"text": {"label": "Text", "default": "Hallo!"}},
}

def register(hooks):
    @hooks.add_action("footer")
    def hallo(**kwargs):
        return f"<p>{hooks.setting('text')}</p>"

Server neu starten, im Admin unter System → Plugins aktivieren – fertig. Aus settings baut der Admin automatisch eine Einstellungsseite (Typen: text, textarea, bool, email, number, color).

Was ein Plugin noch kann

  • models.py + admin.py – eigene Daten mit Admin-Seite (verschwindet, wenn das Plugin aus ist: core.admin_utils.PluginModelAdmin)
  • urls.py – eigene Seiten unter /plugin/<name>/ oder mit "url_prefix" z. B. unter /doku/
  • templates/ – eigene Templates
  • activate() / deactivate() – läuft beim An-/Ausschalten

Vollständiges Beispiel: plugins/kontaktformular/.