dynamic news

This commit is contained in:
2025-05-16 11:41:36 +03:00
parent 21498f8f25
commit 8d7be8f829
12 changed files with 130 additions and 31 deletions

View File

@@ -20,11 +20,14 @@ class FAQ (models.Model):
class News(models.Model):
titleImage = models.ImageField(verbose_name="Главная картинка")
titleImage = models.ImageField(upload_to='uploads/news/images/', 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)
slug = models.SlugField(max_length=255, null=True, blank=True, editable=False)
created_at = models.DateTimeField(auto_now_add=True, null=True, blank=True)
filename = models.CharField(max_length=255, blank=True)
path = models.CharField(max_length=255, blank=True)
class Meta:
verbose_name = 'Новость'
verbose_name_plural = 'Новости'
@@ -34,17 +37,20 @@ class News(models.Model):
return self.title
def save(self, *args, **kwargs):
super().save(*args, **kwargs) #сохраняем изображение
# генерируем путь к файлу если удалось его сохранить
if self.titleImage:
self.filename = os.path.basename(self.titleImage.name)
self.path = f'{settings.BASE_URL}{settings.MEDIA_URL}{self.titleImage.name}'
super().save(*args, **kwargs) # записываем путь и имя файла в базу
if not self.pk: # Только при первом сохранении
super().save(*args, **kwargs) # сохраняем изображение
# генерируем путь к файлу если удалось его сохранить
if self.titleImage:
self.filename = os.path.basename(self.titleImage.name)
self.path = f'{settings.BASE_URL}{settings.MEDIA_URL}{self.titleImage.name}'
super().save(*args, **kwargs) # записываем путь и имя файла в базу
else:
self.filename = ''
self.path = ''
else:
self.filename = ''
self.path = ''
super().save(*args, **kwargs)
@receiver(pre_save, sender=News)
def generate_slug(sender, instance, **kwargs):
if not instance.slug: