Gestiamo i contenuti in Admin
Come abbiamo visto in precedenza Django offre una interfaccia già pronta per fare operazione di
inserimento, aggiornamento e cancellazione di dati chiamata Admin. Per poter visualizzare
i nostri modelli nell'interfaccia di amministrazione dobbiamo registrarli (dal nome della funzione
admin.register
).
Registriamo quindi i modelli della nostra applicazione corsi
in admin modificando corsi/admin.py
:
from django.contrib import admin
from corsi.models import Categoria, Corso
@admin.register(Categoria)
class CategoriaAdmin(admin.ModelAdmin):
search_fields = ("titolo",)
@admin.register(Corso)
class CorsoAdmin(admin.ModelAdmin):
list_display = ("__str__", "categoria")
list_filter = ("categoria", "docenti")
search_fields = ("titolo", "descrizione")
L'admin creato per gestire il modello Categoria
è molto semplice, l'unico attributo che abbiamo
specificato è l'aver aggiunto il campo titolo
a quelli cercabili.
Per Corso
invece, tramite l'opzione list_display
abbiamo modificato i campi che vengono visualizzati
nella pagina che lista tutte le istanze che abbiamo mostrando oltre a quello che restistuisce il metodo
__str__
nel modello anche l'analogo metodo della Categoria
associata.
Infine abbiamo abbiamo usatò la funzionalità di filtro tramite l'opzione list_filter
permettendo di
filtrare i nostri corsi per categoria e per docenti.
Per poter accedere all'admin creiamo quindi un utente superuser con il comando:
python3 manage.py createsuperuser
Possiamo quindi far partire il server web di sviluppo con il seguente comando:
python3 manage.py runserver
Ed infine collegarci all'indirizzo http://127.0.0.1:8000/admin per poter
interagire con i modelli della nostra applicazione corsi
.
Una volta verificato che tutto funziona aggiorniamo il codice su git:
git add corsi/admin.py
git commit -m "Admin per modelli corsi"
git push origin main
Esercizi
Inserisci, modifica, cancella, ricerca e filtra i modelli in Admin.
Leggi la documentazione delle opzioni di ModelAdmin che abbiamo usato.