Uno "slug" è un modo per generare un URL valido, generalmente usando i dati già ottenuti. Ad esempio, una lumaca utilizza il titolo di un articolo per generare un URL. Consiglio di generare la lumaca tramite una funzione, dato il titolo (o un altro dato), piuttosto che impostarlo manualmente.
Un esempio:
<title> The 46 Year Old Virgin </title>
<content> A silly comedy movie </content>
<slug> the-46-year-old-virgin </slug>
Ora facciamo finta di avere un modello Django come:
class Article(models.Model):
title = models.CharField(max_length=100)
content = models.TextField(max_length=1000)
slug = models.SlugField(max_length=40)
Come riferiresti questo oggetto con un URL e con un nome significativo? Ad esempio, potresti usare Article.id in modo che l'URL sia simile al seguente:
www.example.com/article/23
Oppure, potresti voler fare riferimento al titolo in questo modo:
www.example.com/article/The 46 Year Old Virgin
Poiché gli spazi non sono validi negli URL, devono essere sostituiti da %20
, il che si traduce in:
www.example.com/article/The%2046%20Year%20Old%20Virgin
Entrambi i tentativi non danno come risultato URL molto significativi e di facile lettura. Questo è meglio:
www.example.com/article/the-46-year-old-virgin
In questo esempio, the-46-year-old-virgin
è una lumaca: è stata creata dal titolo, incassando tutte le lettere e sostituendo gli spazi con trattini -
.
Vedi anche l'URL di questa stessa pagina web per un altro esempio.