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

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

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

Войти через центр авторизации
Похожие вопросы