From c62fbceaaf19188bea1dde4a225aeba784446626 Mon Sep 17 00:00:00 2001 From: erjemin Date: Mon, 11 May 2026 17:36:37 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=82=D0=B8=D0=B7=D0=B5=D1=80=20=D0=B4?= =?UTF-8?q?=D0=BB=D1=8F=20=D0=BE=D0=BF=D0=B8=D1=81=D0=B0=D0=BD=D0=B8=D1=8F?= =?UTF-8?q?=20=D0=BD=D0=B5=20=D0=B4=D0=BE=D0=BB=D0=B6=D0=B5=D0=BD=20=D1=82?= =?UTF-8?q?=D1=80=D0=B0=D0=BD=D1=81=D0=BB=D0=B8=D1=82=D0=B8=D1=80=D0=B8?= =?UTF-8?q?=D1=80=D0=BE=D0=B2=D0=B0=D1=82=D1=8C=D1=81=D1=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- oknardia/oknardia/models.py | 11 +++-------- .../web/management/commands/populate_seo_fields.py | 4 ++-- 2 files changed, 5 insertions(+), 10 deletions(-) diff --git a/oknardia/oknardia/models.py b/oknardia/oknardia/models.py index 4e9ec69..3d7c9f3 100644 --- a/oknardia/oknardia/models.py +++ b/oknardia/oknardia/models.py @@ -8,7 +8,8 @@ from datetime import date, datetime from django.utils import timezone from django.contrib.auth.models import User from oknardia.settings import * - +from web.add_func import sanitize_slug, safe_html_spec_symbols +import re # Таблица: Каталог профилей, стеклопакетов (добавлено 09.авг.2017) # create table oknardia_catalog2profile @@ -1074,19 +1075,15 @@ class BlogPosts(models.Model): """ # Шаг 1: Автоматически генерируем слаг из заголовка, если он не указан if not self.sSlug and self.sPostHeader: - from web.add_func import sanitize_slug self.sSlug = sanitize_slug(self.sPostHeader, max_length=200) # Шаг 2: Автоматически генерируем sMetaDescription из контента (тизер) if not self.sMetaDescription and self.sPostContent: - import re - from web.add_func import sanitize_slug - # Удаляем теги из контента content_clean = re.sub(r'', '', self.sPostContent, flags=re.IGNORECASE) # Генерируем тизер (очищенный текст без HTML) - tizer = sanitize_slug(content_clean, max_length=200) + tizer = safe_html_spec_symbols(content_clean) # Обрезаем до 160 символов для мета-description if len(tizer) > 160: @@ -1097,8 +1094,6 @@ class BlogPosts(models.Model): # Шаг 3: Автоматически генерируем sMetaKeywords из заголовка if not self.sMetaKeywords and self.sPostHeader: - from web.add_func import sanitize_slug - import re # Берём заголовок и удаляем HTML-теги header_clean = re.sub(r'<[^>]+>', '', self.sPostHeader) diff --git a/oknardia/web/management/commands/populate_seo_fields.py b/oknardia/web/management/commands/populate_seo_fields.py index 605def7..2e0bdb0 100644 --- a/oknardia/web/management/commands/populate_seo_fields.py +++ b/oknardia/web/management/commands/populate_seo_fields.py @@ -21,7 +21,7 @@ from django.core.management.base import BaseCommand from django.utils import timezone from oknardia.models import BlogPosts -from web.add_func import sanitize_slug +from web.add_func import sanitize_slug, safe_html_spec_symbols class Command(BaseCommand): @@ -115,7 +115,7 @@ class Command(BaseCommand): # Генерируем sMetaDescription if not post.sMetaDescription and post.sPostContent: content_clean = re.sub(r"", "", post.sPostContent, flags=re.IGNORECASE) - tizer = sanitize_slug(content_clean, max_length=200) + tizer = safe_html_spec_symbols(content_clean) if len(tizer) > 160: # Обрезаем по последнему пробелу перед 160-й позицией