Ricerca testuale su Django Admin usando Search Fields
Search Fields. Le ricerche testuali sono aggiunte alle pagine elenco dei modelli.
Cosa trovi in questo video
Questo video accompagna la guida Ricerca testuale su Django Admin usando Search Fields e riprende i passaggi principali con una spiegazione più diretta e visuale.
Sintesi del video
Django Admin offre la possibilità di ricercare testualmente i dati utilizzando Search Fields. Le ricerche testuali sono aggiunte alle pagine elenco dei modelli.
Punti trattati
- Attivazione della ricerca testuale
- Ricerca su campi testuali
- Ricerca su campi relazionati
- Funzionamento della ricerca testuale
- Definizione lookup di ricerca
Testo di supporto
La ricerca testuale è indispensabile per poter filtrare i dati in maniera efficiente, soprattutto quando il numero di informazioni, contenute nel nostro applicativo, cresce.
Django Admin offre la possibilità di aggiungere, all’interno del backoffice, i campi di ricerca in maniera intuitiva ed elegante. Con poche istruzioni, lo sviluppatore può mettere a disposizione dei propri utenti dei campi di ricerca che eseguono diverse tipologie di filtri: parola esatta, parole contenute, etc.
In questo articolo capirai come inserire i campi di ricerca all’interno
di Django Admin utilizzando il campo search_fields. Una volta inseriti i
campi di ricerca, il backoffice di Django ci mostra una pagina che si presenta
come segue:
Per abilitare la ricerca testuale all’interno della pagina contenente l’elenco
degli elementi di un modello, inserire nella classe del ModelAdmin del
modello, la seguente istruzione:
Nella precedente lista, colonna1 e colonna2 rappresentano i nomi dei campi
sui quali eseguiremo la ricerca testuale.
Un primo tipo di ricerca testuale può essere eseguito sui campi del modello di
tipo testuale: CharField e TextField. Per eseguire una ricerca di questo
tipo, inserire i nomi dei campi all’interno della variabile search_fields.
Inserendo i nomi di colonne senza specificare nulla, il filtro
testuale lavora in modalità icontains, ossia eseguendo una like
case insensitive.
Ad esempio, se inserisci una chiave di ricerca mario e stai ricercando
sul campo nome, la condizione eseguita sul database è:
Puoi eseguire ricerche sui campi relazionati mediante ForeignKey e
ManyToManyField. In particolare, puoi specificare il campo, della
tabella relazionata, sul quale eseguire la ricerca testuale.
class Album(models.Model) nome = models.CharField(max_length=128) autore = models.ForeignKey(Autore, on_delete=models.PROTECT)
## Approfondimento scritto
Per comandi, esempi e passaggi completi puoi leggere l'articolo collegato: [Ricerca testuale su Django Admin usando Search Fields](/ricerca-testuale-django-admin-usando-search-fields/).
Come continuare
Se vuoi riprendere il contenuto con calma, puoi rivedere il video su YouTube o usare l'articolo scritto come riferimento testuale.