Способы преобразования кириллицы в латиницу в Django Slugify (ЧПУ)
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Решения «Django»
Комментариев: 0

Преобразование кириллицы на латиницу в Django

Первый способ.

Самый легкий, это установить модуль pytils.

pip install pytils

И вместо обычного slugify импортируем в нужном месте следующим образом:

from pytils.translit import slugify

Как пользоваться? Пример:

from pytils.translit import slugify

#some models
#some fields
#some methods

self.slug = slugify(self.title)

Второй способ:

Это модернизация slugify, я создал файлик utils.py в каком-нибудь приложении. 

from django.template.defaultfilters import slugify as django_slugify

# Slugify (Cyrillic)
alphabet = {'а': 'a', 'б': 'b', 'в': 'v', 'г': 'g', 'д': 'd', 'е': 'e', 'ё': 'yo', 'ж': 'zh', 'з': 'z', 'и': 'i',
            'й': 'j', 'к': 'k', 'л': 'l', 'м': 'm', 'н': 'n', 'о': 'o', 'п': 'p', 'р': 'r', 'с': 's', 'т': 't',
            'у': 'u', 'ф': 'f', 'х': 'kh', 'ц': 'ts', 'ч': 'ch', 'ш': 'sh', 'щ': 'shch', 'ы': 'i', 'э': 'e', 'ю': 'yu',
            'я': 'ya'}

def slugify(s):
    return django_slugify(''.join(alphabet.get(w, w) for w in s.lower()))

Импортируем slugify из этого же файлика, где мы его модернизировали. 

from modules.system.utils import slugify

Как пользоваться? Пример:

from modules.system.utils import slugify

#some models
#some fields
#some methods

self.slug = slugify(self.title)

Это известные способы модернизации функции Slugify в Django, которые я пользуюсь повседневно. 

Теги записи: Django, Slugify,
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)