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

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

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

Похожие вопросы
Strikt Москва
от 100 000 до 180 000 ₽
ITK academy Саратов
от 75 000 ₽
Sim-Ba Pay Санкт-Петербург
от 180 000 ₽