Hier ist eine Anleitung, wie du django-unfold in dein Django-Projekt integrierst und die Vorteile des Tools nutzen kannst.
django-unfold ist ein Open-Source-Paket, das die Django-Adminoberfläche modernisiert und um eine benutzerfreundliche UI erweitert.
Es bietet eine schlanke und anpassbare Oberfläche, die sich besonders gut für Projekte eignet, bei denen die Standard-Django-Adminoberfläche nicht ausreicht. django-unfold bietet unter anderem bessere Bedienbarkeit, mehr Flexibilität in der Darstellung von Modellen und eine ansprechende, mobile-optimierte Benutzeroberfläche.
django-unfold kann einfach über pip
installiert werden. Füge es als Abhängigkeit zu deinem Projekt hinzu:
pip install django-unfold
Füge django-unfold in den INSTALLED_APPS
in deinen Django-Einstellungen hinzu:
INSTALLED_APPS = [
# Andere Apps...
"unfold",
"django.contrib.admin",
# Weitere Apps...
]
Da django-unfold seine eigenen Datenstrukturen verwendet, musst du die Datenbank-Migrationen ausführen:
python manage.py migrate
Jetzt sollte django-unfold korrekt installiert sein und bereit zur Nutzung im Admin-Panel sein.
Mit django-unfold kannst du in deiner admin.py
Datei Modelle auf ähnliche Weise registrieren wie mit der Standard-Admin-Oberfläche, jedoch mit zusätzlichen Konfigurationsoptionen für eine ansprechendere Benutzeroberfläche.
Hier ein Beispiel für ein einfaches Modell und die entsprechende Admin-Registrierung mit unfold.
from django.contrib import admin
from unfold.admin import ModelAdmin
from .models import Artikel
@admin.register(Artikel)
class ArtikelAdmin(ModelAdmin):
list_display = ["titel", "author", "veröffentlichungsdatum"]
search_fields = ["titel", "inhalt"]
list_filter = ["author", "veröffentlichungsdatum"]
In der Listenansicht kannst du mit django-unfold Felder und Filter ganz einfach konfigurieren und erweitern. Hier einige weitere Optionen:
list_display
: Zeigt die angegebenen Felder in der Listenansicht.search_fields
: Ermöglicht die Suche innerhalb der definierten Felder.list_filter
: Fügt Filteroptionen basierend auf den angegebenen Feldern hinzu.Mit diesen Optionen kannst du die Daten effizient darstellen und die Benutzerfreundlichkeit der Admin-Oberfläche erhöhen.
Ein großer Vorteil von django-unfold ist die Flexibilität in der Detailansicht eines Modells. Du kannst Felder gruppieren, Layouts anpassen und die Benutzerführung verbessern. Hier ein Beispiel:
@admin.register(Artikel)
class ArtikelAdmin(ModelAdmin):
fieldsets = [
("Allgemein", {"fields": ["titel", "inhalt"]}),
("Metadaten", {"fields": ["author", "veröffentlichungsdatum"]}),
]
django-unfold unterstützt auch sogenannte "Inlines", um verwandte Modelle in einem Hauptmodell anzuzeigen. Dies ist nützlich, wenn du z. B. Kommentare in der Artikel-Ansicht integrieren möchtest.
from django.contrib import admin
from unfold.admin import ModelAdmin
from unfold.admin import TabularInline
from .models import Kommentar, Artikel
class KommentarInline(TabularInline):
model = Kommentar
extra = 1
@admin.register(Artikel)
class ArtikelAdmin(ModelAdmin):
inlines = [KommentarInline]
Hier wird ein Inline-Formular zur Eingabe von Kommentaren in der Detailansicht eines Artikels hinzugefügt, was die Interaktion mit verknüpften Daten erleichtert.
django-unfold ermöglicht es dir, benutzerdefinierte CSS- und JavaScript-Dateien einzubinden, um das Styling der Admin-Ansichten weiter anzupassen. Dazu musst du die gewünschten Dateien im static
-Ordner deines Projekts hinterlegen und sie über die Admin-Ansichten laden.
Beispiel:
class ArtikelAdmin(ModelAdmin):
class Media:
css = {"all": ("css/custom_admin.css",)}
js = ("js/custom_admin.js",)
django-unfold bietet eine umfassende Lösung für eine verbesserte und moderne Django-Adminoberfläche. Die flexiblen Anpassungsmöglichkeiten und das ansprechende Design helfen, das Admin-Panel intuitiver und benutzerfreundlicher zu gestalten.