Seite 1 von 1

[Django] SlugField als Form field

Verfasst: Montag 15. Februar 2010, 09:38
von Mawilo
Hallo,

ich habe ien Formular, über das User verschiedene Daten eingeben können. Im Model habe ich auch ein SlugField definiert. Das wird auch schön in der Admin-Oberfläche angezeigt. Nun möchte ich aber, dass auch im Formular für die User ein SlugField erstellt wird. Da ich die Daten speichern möchte, benötige ich einen Wert für das im Model definierte SlugField. Gibt es so etwas wie ein SlugField auch für Form fields?

Mawilo

Verfasst: Montag 15. Februar 2010, 13:36
von Mawilo
Ich habe mir eine kleine Funktion geschrieben, um einen Django-Slug-Wert zu erzeugen:

Code: Alles auswählen

def create_slug(string):
    string = str(string).lower()
    dic = {' ':'-', 'ü':'u', 'ä':'a', 'ö':'o', 'ß':'ss', 'å':'a'}
    for u in dic:
        string = string.replace(u, dic[u])
    for s in string:
        if s == '-':
            continue
        if not s.isalnum():
            string = string.replace(s, '')
    return string
Das geht aber doch bestimmt auch einfacher?

Verfasst: Montag 15. Februar 2010, 13:39
von apollo13
Ja, django hat sicher irgendwo eine slugify Funktion ;)

Verfasst: Montag 15. Februar 2010, 19:30
von Mawilo
apollo13 hat geschrieben:Ja, django hat sicher irgendwo eine slugify Funktion ;)
Habe ich auch gefunden - nur hätte ich eben gerne den Komfort aus der Admin-Oberfläche in einem "normalen" Webformular. Oder sind meine Ansprüche nur einfach zu hoch :)

Verfasst: Donnerstag 22. April 2010, 16:16
von metty
Hey...

django hat in seinen defaultfilters eine function "slugify"

Kannst du ganz einfach nutzen:

Code: Alles auswählen

from django.template.defaultfilters import slugify
slugify("Hallo das ist ein TEST!")
u'hallo-das-ist-ein-test'