РЕПЕТИТОР математика физика информатика
Для школьников и студентов. Подтягивание пробелов. ЦЭ, ЦТ, ОГЭ, ЕГЭ.
Идет набор на ЛЕТО. Жмите для подробностей:)
736 of 818 menu

Функция slugify

Функция slugify применяется к строке и возвращает ее версию, безопасную для использования в URL-адресах. Она удаляет все символы, кроме букв, цифр, дефисов и подчеркиваний, заменяет пробелы на дефисы и приводит все символы к нижнему регистру. Это особенно полезно при создании ЧПУ (человеко-понятных URL) на основе заголовков статей или названий продуктов.

Функция автоматически обрабатывает транслитерацию кириллицы в латиницу, что делает ее универсальным инструментом для интернационализированных проектов. Она также удаляет ведущие и замыкающие дефисы, гарантируя чистый результат.

Синтаксис

from django.utils.text import slugify slugify(value, allow_unicode=False)

Параметры

Функция принимает два параметра:

  • ⁅b⁆value⁅/b⁆ - строка, которую необходимо преобразовать.
  • ⁅b⁆allow_unicode⁅/b⁆ - булевый флаг. Если установлен в True, функция сохраняет Unicode-символы вместо их транслитерации. По умолчанию равен False.

Пример

Давайте преобразуем заголовок статьи в URL-совместимый формат:

from django.utils.text import slugify title = "Как создать сайт на Django" slug = slugify(title) print(slug)

Результат выполнения кода:

"kak-sozdat-sait-na-django"

Пример

Давайте рассмотрим работу с кириллицей и параметром allow_unicode:

from django.utils.text import slugify title = "Привет мир!" slug_default = slugify(title) slug_unicode = slugify(title, allow_unicode=True) print(slug_default) print(slug_unicode)

Результат выполнения кода:

"privet-mir" "привет-мир"

Пример

Давайте используем slugify в модели для автоматической генерации слага:

from django.db import models from django.utils.text import slugify class Article(models.Model): title = models.CharField(max_length=200) slug = models.SlugField(max_length=200, unique=True, blank=True) def save(self, *args, **kwargs): if not self.slug: self.slug = slugify(self.title) super().save(*args, **kwargs) def __str__(self): return self.title

Результат создания объекта:

from myapp.models import Article article = Article.objects.create(title="Моя первая статья") print(article.slug)

Результат выполнения кода:

"moia-pervaia-stattia"

Смотрите также

  • функция mark_safe,
    которая помечает строку как безопасную для вывода в шаблоне
  • класс SafeString,
    который представляет безопасную строку для HTML
  • функция escape,
    которая экранирует HTML-символы в строке
  • функция format_html,
    которая безопасно форматирует HTML-строку
Мы используем cookie для работы сайта, аналитики и персонализации. Обработка данных происходит согласно Политике конфиденциальности.
принять все настроить отклонить