Регулярно требуется преобразовать какой-либо текст в максимально совместимый текст для URL, имени файла, имени объекта в каком-то софте и тд. Требования совместимости простые: в тексте должны быть только допустимые символы. Обычно это a-z, 0-9 и "_" или "-". То есть, только прописные буквы латинского алфавита и цифры (как пример).
Допустим, нам нужно название статьи в блоге преобразовать в slug для добавления его в URL этой статьи. Как это лучше всего сделать?
В Django по умолчанию есть готовая функция slugify для таких случаев.
Но я её никогда не использую. Почему? Потому что её недостаточно!
Приведём пример
>>> from django.utils.text import slugify
>>> slugify('This is a Title')
'this-is-a-title'
Пока всё отлично
>>> slugify('This is a "Title!"')
'this-is-a-title'
Спец символы удалились, всё хорошо.
>>> slugify('Это заголовок статьи')
''
Вот и приехали 😢. Если текст не английский то буквы просто игнорируются. Можно это поправить
>>> slugify('Это заголовок статьи', allow_unicode=True)
'это-заголовок-статьи'
Но тогда мы не вписываемся в условие. У нас появилась кириллица в тексте.
Так как я часто пишу сайты для русскоязычных пользователей эта проблема весьма актуальна. Я не использую стандартную функцию и всегда пишу свою.
Оригинал я не беру в расчёт и пишу полностью свою функцию. И так, по порядку:
🔸1. Исходный текст:
>>> text = 'Мой заголовок №10 😁!'
Взял специально посложней со специальными символами.
🔸2. Транслит
Необходимо сделать транслит всех символов в латиницу. Здесь очень выручает библиотека unidecode. Помимо простого транслита кириллицы в латиницу она умеет преобразовывать спец символы и иероглифы в текстовые аналоги.
from unidecode import unidecode
>>> unidecode("Ñ Σ ® µ ¶ ¼ 月 山")
'N S (r) u P 1/4 Yue Shan'
Очень крутая библиотека, советую👍
В нашем случае получаем такое преобразование:
>>> text = unidecode(text)
>>> print(text)
'Moi zagolovok No. 10 !'
Отличный транслит. Смайл просто удалился, хотя я ждал что-то вроде :). Ну и ладно, всë равно невалидные символы.
А еще наш код уже поддерживает любой язык, будь то хинди или корейский.
🔸4. Фильтр символов
Unidecode не занимается фильтрацией по недопустимым символам. Это мы делаем в следующем шаге через regex. Просто заменим все символы на "_" если они вне указанного диапазона.
>>> text = re.sub(r'[^a-zA-Z0-9]+', '_', text)
>>> print(text)
'Moi_zagolovok_No_10_'
Символ "+" в паттерне выручает когда несколько недопустимых символов идут рядом. Все они заменяются на один символ "_".
🔸5. Slugify
Осталось удалить лишние символы по краям и сделать нижний регистр
>>> text = text.strip('_').lower()
>>> print(text)
'moi_zagolovok_no_10'
Получаем отличный slug! 😎
🌎 Полный код в виде функции.
______________
PS. Проверку что в строке остался хоть один допустимый символ я бы вынес в отдельную функцию.
#libs#tricks#django
Члены клуба «Юные дипломаты» приняли участие в IV Международной молодёжной волонтёрской конференции «БРИКС для вас»
(IV International Youth Volunteer Conference "BRICS To You")
15 октября в онлайн-формате прошла IVМеждународная молодёжная волонтёрская конференция «BRICS To You».В этом международном событии приняли участие члены клуба «Юные дипломаты», Коврижкина Алина и Кийко Николь.
Конференция объединила активную молодёжь из стран БРИКС+, заинтересованную в развитии международного волонтерства и сотрудничества. В программе были представлены лучшие практики волонтёрских проектов, направленных на поддержку общественных инициатив, экологию, образование и развитие молодёжных обменов.
Участники познакомились с международным опытом волонтёрства, расширили профессиональные и межкультурные горизонты, пообщались с единомышленниками и представителями волонтёрских организаций из разных стран.
Участие в конференции дало нашим юным дипломатам ценный опыт, укрепило международные связи и вдохновило на дальнейшую активную работу в сфере международного сотрудничества!
Пресс-центр клуба «Юные дипломаты»: Коврижкина Алина
#BRICSToYou
📌Become a part of the international volunteer community!
👉Applications for the IV International Youth Volunteer Conference "BRICS To You" have started.
🌐The best practices of international volunteer projects will be presented at the online conference. The participants can be English-speaking people from the BRICS+ countries aged 14-35.
⏩"BRICS To You" is perfect for:
- immersion in the unique experience of volunteering in the BRICS+ countries,
- expansion of professional horizons and improvement of volunteer competencies,
- networking with like-minded peers,
- improving English language proficiency (for non-native speakers).
💌All active participants will be awarded a certificate.
📅Date: October 15, 2025
💻Format: online
🕑Time: 12:00-15:00 (Moscow time)
📍Registration last date: October 5, 2025
Link to registration
(the project team will contact ONLY the selected participants by October 10)
Organizer: The Russia-BRICS Project Office for International Youth Cooperation with the support of the Creative Industries Foundation of the Ulyanovsk region and the EternITy Digital Management Community.
__
📌Стань частью международного волонтерского сообщества!
👉Стартовал прием заявок на IV Международную молодежную волонтерскую конференцию "BRICS To You".
🌐На онлайн-конференции будут представлены лучшие практики международных волонтёрских проектов. Участниками могут стать молодые люди из стран БРИКС+ в возрасте 14-35 лет, владеющие английским языком.
⏩"BRICS To You" - это:
- погружение в уникальный опыт волонтерской деятельности в странах БРИКС+,
- расширение профессионального кругозора и совершенствование волонтерских компетенций,
- нетворкинг с единомышленниками,
- повышение уровня владения английским языком (для неносителей).
💌По завершении курса всем активным участникам вручается сертификат.
📅Дата: 15 октября 2025 г.
💻Формат: онлайн
🕑Время: 12:00-15:00 (московское время)
📍Последний день регистрации: 5 октября 2025 г.
Ссылка на регистрацию
(с отобранными участниками до 10 октября свяжется команда проекта)
Организатор: Проектный офис международного молодежного сотрудничества "Россия-БРИКС" при поддержке Фонда креативных индустрий Ульяновской области и Сообщества цифровых управленцев "я-ИТ-ы".
#БРИКС#BRICS#конференция#BRICStoYou#молодежь#волонтерство#BRICSyouth
On October 15, 2025, the IV International Youth Volunteer Conference "BRICS To You" was held online 🙏
🌍The event brought together over 15 speakers – leaders in youth policy, heads of volunteer associations, and public figures from Russia, Brazil, India, South Africa, Ethiopia, Iran, Egypt, Indonesia, Uzbekistan, Uganda, and the Republic of Belarus – along with more than 250 participants from 65 countries worldwide. They shared successful volunteering practices and outlined new vectors for future collaboration🤝
👩💻The official segment featured video addresses from representatives of the Federal Agency for Youth Affairs (Rosmolodezh) and national youth policy secretariats of the BRICS+ countries, underscoring the event's high level and significance.
🗝Key discussion topics included:
🎯 Environmental and social initiatives and the role of youth in achieving sustainable development goals,
🎯 Developing volunteer ecosystems at the municipal and university levels,
🎯 Intercultural dialogue and people's diplomacy through volunteer projects,
🎯 Supporting and scaling up successful youth practices within the BRICS+ space.
A particularly dynamic part of the program was the open discussion🎤 "Youth Volunteer Initiatives," where participants from different countries presented their projects and explored opportunities for cooperation and joint implementation.
The event was organized by the Russia-BRICS Project Office for International Youth Cooperation with the support of the Federal Agency for Youth Affairs (Rosmolodezh), the Creative Industries Foundation of the Ulyanovsk Region, the BRICS+ Digital Management Community "EternITy", and the BRICS Youth Alliance. The conference is part of the official Event calendar under the Brazilian BRICS Chairship.
____________________________
15 октября 2025 года в онлайн-формате состоялась IV Международная молодежная волонтерская конференция «BRICS To You»🙏
🌍Более 15 спикеров – лидеров молодежной политики, руководителей волонтерских ассоциаций и общественных деятелей из России, Бразилии, Индии, ЮАР, Эфиопии, Ирана, Египта, Индонезии, Узбекистана, Уганды и Республики Беларусь – и более 250 участников из 65 стран мира обменялись успешными практиками в сфере добровольчества и наметили новые векторы совместной работы🤝
👩💻В рамках официальной части с видео-обращениями выступили представители ФАДМ (Росмолодежь) и национальных секретариатов по молодежной политике стран БРИКС+, что подчеркнуло высокий уровень и значимость мероприятия.
🗝Ключевыми темами для обсуждения стали:
🎯 Экологические и социальные инициативы и роль молодежи в достижении целей устойчивого развития,
🎯 Развитие волонтёрских экосистем на уровне муниципалитетов и университетов,
🎯Межкультурный диалог и народная дипломатия через добровольческие проекты,
🎯Поддержка и масштабирование успешных молодежных практик на пространстве БРИКС+.
Особой динамичной частью программы стала открытая дискуссия🎤 «Youth volunteer initiatives», в рамках которой участники из разных стран представили свои инициативы и обсудили возможности для кооперации и совместной реализации проектов.
Мероприятие было организовано Проектным офисом международного молодежного сотрудничества «Россия-БРИКС» при поддержке Федерального агентства по делам молодежи, Фонда креативных индустрий Ульяновской области, Сообщества цифровых управленцев БРИКС+ «я-ИТ-ы» и Молодежного альянса БРИКС. Конференция входит в официальный календарь мероприятий в рамках Председательства Бразилии в БРИКС.
#BRICS2U#BRICS#БРИКС#BRICStoYou#БРИКС#Youth#Молодежь#Волонтерство#Volunteering