Гляньте в реализацию функции:
def slugify(value, allow_unicode=False):
"""
Convert to ASCII if 'allow_unicode' is False. Convert spaces to hyphens.
Remove characters that aren't alphanumerics, underscores, or hyphens.
Convert to lowercase. Also strip leading and trailing whitespace.
"""
Функция slugify - сконвертировать в ASCII если allow_unicode False, преобразовать пробелы в дефисы, удалить символы которые не являются буквенно-цифровыми, подчеркиваниями или дефисами, конвертировать в нижний регистр и удалить пробелы в начале и конце
Транслитерация кириллицы в эту функцию не входит
По умолчанию там для строки выполняются такие шаги:
In [1]: unicodedata.normalize('NFKD', 'привет world')
Out[1]: 'привет world'
In [2]: 'привет world'.encode('ascii', 'ignore').decode('ascii')
Out[2]: ' world'
Вот собственно .encode('ascii', 'ignore') отбрасывает символы кириллицы, так как они не являются ascii-символами
Как вариант:
In [3]: my_string = 'привет world'.translate(
str.maketrans(
"абвгдеёжзийклмнопрстуфхцчшщъыьэюяАБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЪЫЬЭЮЯ",
"abvgdeejzijklmnoprstufhzcss_y_euaABVGDEEJZIJKLMNOPRSTUFHZCSS_
...: Y_EUA"
))
In [4]: slugify(my_string)
Out[4]: 'privet-world'