Для транслитерации поля SlugField() в вашей модели можно воспользоваться следующими способами:

Способ 1

Устанавливаем https://pypi.python.org/pypi/Unidecode

pip install unidecode

В модели:

from unidecode import unidecode

class YourModel(models.Model):
    ...
    slug = models.SlugField(max_length=50, unique=True, blank=True)

    def save(self):
        if not self.slug:
            self.slug = slugify(unidecode(self.title))
        super(Page, self).save()

 

Способ 2

Устанавливаем https://pypi.python.org/pypi/transliterate

pip install transliterate

Модель:

from transliterate import translit, get_available_language_codes

class YourModel(models.Model):
    ...
    slug = models.SlugField(max_length=50, unique=True, blank=True)

    def save(self):
        if not self.slug:
            self.slug = slugify(translit(self.title, 'ru', reversed=True))
        super(Page, self).save()

Оба способа работают одинаково.

Теги: Django

Выразить благодарность

Если эта публикация оказалась для Вас полезной и вы хотите выразить свою благодарность, сделайте пожалуйста её репост в социальных сетях или на своём сайте.

Так же, Вы можете перевести любую сумму, которую посчитаете нужной на наш счёт, что сильно мотивирует к написанию новых полезных статей.

Комментарии: