Question

I am trying this

from django.utils.text import slugify

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

In [9]: slugify(mystr)

and i am getting this error

TypeError: must be unicode, not str

if i use this

from django.template.defaultfilters import slugify then it works but it does not chnage underscores to hyphens and if i have dots it simple removes it

Was it helpful?

Solution

This is because slugify() expects a unicode object.

The easiest way to solve it is passing the string as a unicode object

mystr = u'This is John'

or

mystr = unicode('This is John')
>> u'This is John'
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top