Pannello di Amministrazione
Il pannello di amministrazione di Django è uno degli strumenti più potenti inclusi nel framework. Permette di gestire i dati dell’applicazione tramite un’interfaccia web generata automaticamente, senza dover scrivere codice aggiuntivo per le operazioni CRUD di base.
Attivare il Pannello di Amministrazione
Django include l’admin di default nei nuovi progetti. Verifica che django.contrib.admin sia presente nella lista INSTALLED_APPS del file settings.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'myapp',
]
Assicurati inoltre che le URL dell’admin siano configurate nel file urls.py principale:
from django.contrib import admin
from django.urls import path
urlpatterns = [
path('admin/', admin.site.urls),
]
Creare un Superuser
Per accedere al pannello di amministrazione, è necessario creare un superuser tramite il terminale:
# Esegui il comando dal terminale
# python manage.py createsuperuser
#
# Ti verranno chiesti:
# - Nome utente
# - Indirizzo email
# - Password (inserita due volte)
Dopo aver creato il superuser, avvia il server di sviluppo e accedi a http://127.0.0.1:8000/admin/ per visualizzare il pannello.
Registrare un Modello nell’Admin
Per rendere un modello visibile nel pannello di amministrazione, è necessario registrarlo nel file admin.py della tua app. Supponiamo di avere questo modello:
# models.py
from django.db import models
class Articolo(models.Model):
titolo = models.CharField(max_length=200)
contenuto = models.TextField()
data_pubblicazione = models.DateTimeField(auto_now_add=True)
pubblicato = models.BooleanField(default=False)
def __str__(self):
return self.titolo
Per registrarlo nell’admin:
# admin.py
from django.contrib import admin
from .models import Articolo
admin.site.register(Articolo)
Con questa semplice riga, il modello Articolo apparirà nel pannello di amministrazione con le funzionalità base di creazione, lettura, modifica e cancellazione.
Registrazione con Decoratore
In Django 5.x è comune utilizzare il decoratore @admin.register per una sintassi più pulita:
# admin.py
from django.contrib import admin
from .models import Articolo
@admin.register(Articolo)
class ArticoloAdmin(admin.ModelAdmin):
list_display = ['titolo', 'data_pubblicazione', 'pubblicato']
Personalizzare il Sito Admin
Puoi personalizzare il titolo e l’intestazione del pannello di amministrazione:
# admin.py
admin.site.site_header = "Pannello di Gestione"
admin.site.site_title = "Il Mio Sito Admin"
admin.site.index_title = "Benvenuto nel Pannello di Amministrazione"
Il Metodo str
Definire il metodo __str__ nei modelli è fondamentale per una buona esperienza nell’admin, poiché determina come ogni oggetto viene rappresentato nell’interfaccia:
class Categoria(models.Model):
nome = models.CharField(max_length=100)
def __str__(self):
return self.nome
class Meta:
verbose_name_plural = "Categorie"
L’attributo verbose_name_plural nella classe Meta permette di definire il nome plurale del modello visualizzato nell’admin.
Registrare Più Modelli
Puoi registrare più modelli contemporaneamente nel file admin.py:
from django.contrib import admin
from .models import Articolo, Categoria, Autore
admin.site.register(Articolo)
admin.site.register(Categoria)
admin.site.register(Autore)
Conclusione
Il pannello di amministrazione di Django è uno strumento indispensabile per la gestione dei dati. Con poche righe di codice puoi avere un’interfaccia completa per operare sui tuoi modelli. Nei prossimi capitoli vedremo come personalizzarlo in modo avanzato con ModelAdmin, filtri, ricerca e molto altro.