from django.db import models from django.utils.text import slugify from django.db.models.signals import pre_save from django.dispatch import receiver from transliterate import translit class FAQ (models.Model): title = models.CharField(max_length=250) content = models.CharField(max_length=800) class Meta: verbose_name = 'FAQ' verbose_name_plural = 'FAQs' ordering = ['id'] def __str__(self): return self.title class News(models.Model): titleImage = models.ImageField(verbose_name="Главная картинка") title = models.CharField(max_length=100, verbose_name="Заголовок") content = models.TextField(max_length=1000, verbose_name="Контент статьи") slug = models.SlugField(null=True, blank=True, editable=False) created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True) class Meta: verbose_name = 'Новость' verbose_name_plural = 'Новости' ordering = ['id'] def __str__(self): return self.title @receiver(pre_save, sender=News) def generate_slug(sender, instance, **kwargs): if not instance.slug: # транслит с русского на латиницу transliterated_title = translit(instance.title, 'ru', reversed=True) # создаем слаг и заменяем пробелы на дефисы instance.slug = slugify(transliterated_title)