faq frontend typeguards

This commit is contained in:
2025-05-15 19:50:13 +03:00
parent fd5caada23
commit ac8c3a33ed
11 changed files with 165 additions and 3 deletions

View File

@@ -1,4 +1,5 @@
from django.contrib import admin
from .models import FAQ
from .models import *
admin.site.register(FAQ)
admin.site.register(News)

View File

@@ -0,0 +1,27 @@
# Generated by Django 5.2.1 on 2025-05-15 16:40
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sitemanagement', '0001_initial'),
]
operations = [
migrations.CreateModel(
name='News',
fields=[
('id', models.BigAutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('titleImage', models.ImageField(upload_to='')),
('title', models.CharField(max_length=100)),
('content', models.CharField(max_length=1000)),
],
options={
'verbose_name': 'Новость',
'verbose_name_plural': 'Новости',
'ordering': ['id'],
},
),
]

View File

@@ -0,0 +1,28 @@
# Generated by Django 5.2.1 on 2025-05-15 16:41
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sitemanagement', '0002_news'),
]
operations = [
migrations.AlterField(
model_name='news',
name='content',
field=models.TextField(max_length=1000, verbose_name='Контент статьи'),
),
migrations.AlterField(
model_name='news',
name='title',
field=models.CharField(max_length=100, verbose_name='Заголовок'),
),
migrations.AlterField(
model_name='news',
name='titleImage',
field=models.ImageField(upload_to='', verbose_name='Главная картинка'),
),
]

View File

@@ -0,0 +1,18 @@
# Generated by Django 5.2.1 on 2025-05-15 16:45
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sitemanagement', '0003_alter_news_content_alter_news_title_and_more'),
]
operations = [
migrations.AddField(
model_name='news',
name='slug',
field=models.SlugField(blank=True, null=True),
),
]

View File

@@ -0,0 +1,23 @@
# Generated by Django 5.2.1 on 2025-05-15 16:49
from django.db import migrations, models
class Migration(migrations.Migration):
dependencies = [
('sitemanagement', '0004_news_slug'),
]
operations = [
migrations.AddField(
model_name='news',
name='created_at',
field=models.DateTimeField(auto_now_add=True, null=True),
),
migrations.AlterField(
model_name='news',
name='slug',
field=models.SlugField(blank=True, editable=False, null=True),
),
]

View File

@@ -1,4 +1,8 @@
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)
@@ -12,3 +16,25 @@ class FAQ (models.Model):
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)