@AinuRM

Как автоматически переводить slug с русского слова?

есть модель:
from django.db import models
from autoslug import AutoSlugField
from uuslug import uuslug

def instance_slug(self):
    return self.title

def slugify_value(value):
    return value.replace(' ', '-')

class Articles(models.Model):
    title = models.CharField(max_length=255, verbose_name="Заголовок")
    category = models.ForeignKey(Category, on_delete=models.PROTECT, verbose_name="Категория")
    preview = models.TextField(blank=True, verbose_name="Анонс")
    content = models.TextField(blank=False, verbose_name="Содержание")
    photo = models.ImageField(blank=True, upload_to="photos/%Y/%m/%d/", verbose_name="Картинка")
    time_create = models.DateTimeField(auto_now_add=True, verbose_name="Дата создания")
    is_published = models.BooleanField(default=False, verbose_name="Опубликовать")
    slug = AutoSlugField(max_length=50, db_index=True, unique=True, verbose_name='URL адрес',
                         populate_from=instance_slug, slugify=slugify_value)

    def save(self, *args, **kwargs):
        self.slug = uuslug(self.slug, instance=self)
        super(Articles, self).save(*args, **kwargs)

    def __str__(self):
        return self.title


625c36e357fa2656796185.png

всё отлично работает, slug автоматически создаётся. Без нареканий. Но создается на русском языке. Почему только с русскими наименованиями, что мне исправить?
  • Вопрос задан
  • 337 просмотров
Пригласить эксперта
Ответы на вопрос 2
SilenceOfWinter
@SilenceOfWinter
та еще зажигалка...
ты хоть понимаешь что твой код делает? даже мне, не знакомому с python, очевидно почему у тебя ничего не получается.
Ответ написан
Комментировать
AlexNest
@AlexNest
Работаю с Python/Django
Но создается на русском языке.

А чего вы ожидали? Чтобы оно магическим образом преобразовывалось в латиницу? Увы, но это довольно специфическая проблема - все таки не так много стран используют кириллицу.
Поэтому, либо реализуете транслитерацию вручную, либо используете библиотеку, если найдете.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы