Wie erstelle ich einen einzigartigen Slug in Django
Ich versuche, in Django einen einzigartigen Slug zu erstellen, damit ich über eine URL wie diese auf einen Beitrag zugreifen kann:http: //www.example.com/buy-a-new-bike_Boston-MA-02111_
Die relevanten Modelle:
class ZipCode(models.Model):
zipcode = models.CharField(max_length=5)
city = models.CharField(max_length=64)
statecode = models.CharField(max_length=32)
class Need(models.Model):
title = models.CharField(max_length=50)
us_zip = models.CharField(max_length=5)
slug = ?????
def get_city():
zip = ZipCode.objects.get(zipcode=self.us_zip)
city = "%s, %s %s" % (zip.city, zip.statecode, zip.zipcode)
return city
Ein ZipCode-Beispieleintrag:
zipcode = "02111"city = "Boston"statecode = "MA"A sample Need record:
title = "kaufe ein neues Fahrrad"us_zip = "02111"slug = "kaufe-ein-neues-Fahrrad_Boston-MA-02111_2" (gewünscht)Irgendwelche Tipps, wie man diese einzigartige Schnecke erstellt? Seine Zusammensetzung ist:
Need.title + "_" + Need.get_city () + "_" + eine optionale inkrementierende Ganzzahl, um sie eindeutig zu machen. Alle Leerzeichen sollten durch "-" ersetzt werden.HINWEIS: Mein gewünschter Slug oben geht davon aus, dass der Slug "buy-a-new-bike_Boston-MA-02111" bereits vorhanden ist. Deshalb wurde das "_2" an ihn angehängt, um ihn einzigartig zu machen.
Ich habe Django-Erweiterungen ausprobiert, aber es scheint, dass es nur ein Feld oder ein Tupel von Feldern braucht, um den einzigartigen Slug zu konstruieren. Ich muss die Funktion get_city () sowie den "_" -Anschluss zwischen dem Titel und der Stadt übergeben. Hat jemand dieses Problem gelöst und ist bereit zu teilen?
Vielen Dank
AKTUALISIERE
Ich verwende bereits Django-Erweiterungen für sein UUIDField, also wäre es schön, wenn es auch für sein AutoSlugField verwendbar wäre!