2013-07-29 13 views
5

sto cercando questoottenere errore con Django slugify

from django.utils.text import slugify 

In [8]: mystr = "This is john" 

In [9]: slugify(mystr) 

e sto ottenendo questo errore

TypeError: must be unicode, not str

se io uso questo

from django.template.defaultfilters import slugify allora funziona ma non è così chnage underscores a hyphens e se ho dots lo rimuove semplicemente

risposta

5

Questo perché slugify() si aspetta un oggetto unicode.

Il modo più semplice di risolvere sta passando la stringa come un oggetto Unicode

mystr = u'This is John' 

o

mystr = unicode('This is John') 
>> u'This is John' 
+1

Per i ricercatori futuri ... questa risposta è rilevante solo in Python 2. Non v'è alcun unicode() in Python 3 e tutte le stringhe sono Unicode in Python 3. – Patrick